アウトライン内の重複するメンバー名

Essbaseアウトラインで重複するメンバー名を有効にすると、複数のメンバーに同じ名前を付けることができます。重複した名前を使用できるのは、アウトラインで重複メンバーが有効になっている場合のみです。

重複メンバー名のアウトラインについて

ブロック・ストレージおよび集約ストレージ・データベースでは、重複するメンバー名を使用できます。重複メンバーは、一意のメンバー名アウトラインのメンバーを追加するのと同じ方法で作成します。ディメンション、メンバーおよび別名の命名規則を参照してください。

重複するメンバー名アウトラインを保存すると、Essbaseによって重複するメンバー名が検証されます。修飾された命名構文を使用すると、重複を区別できます。

図4-2に、New York州メンバーとNew York市メンバーがアウトラインにNew Yorkとして表示される重複メンバーのアウトラインの例を示します。

図4-2 重複するメンバー名"New York"


このイメージは、イメージの前のテキストで説明されている、2つのメンバーが同じ名前を使用する重複メンバーのアウトライン階層を示しています。

図4-2の例の修飾メンバー名は、[State].[New York]および[City].[New York]です。

重複するメンバー名を有効にするアウトラインを作成するには、Essbase Webインタフェースのアウトライン・プロパティを使用するか、create database MaxL文でusing non_unique_members句を指定してキューブを作成します。または、アプリケーション・ワークブックからキューブを作成する場合は、「Cube.Settings」タブで、「アウトライン・タイプ」プロパティを「重複」に設定します。

ノート:

重複するメンバーのアウトラインは、一意のメンバーのアウトラインに変換できません。

重複メンバー名についても参照してください。

ノート:

重複メンバー・アウトラインの属性ディメンションには、一意のアウトラインの属性ディメンションに適用される接頭辞または接尾辞は付けられません。たとえば、重複メンバーのブール属性ディメンションでは、メンバーには、TRUEおよびFALSEメンバーに付加されたディメンション、親、親の親または祖先は含まれません。「属性ディメンションのメンバー名の接頭辞および接尾辞のフォーマットの設定」を参照してください。

アウトラインでの重複メンバー名および別名の制限

データベース・アウトライン内に重複メンバー名と別名を作成するときは、必ず次のものを一意にする必要があります。

  • ディメンション名

  • 世代名およびレベル名

  • 親メンバーの下の兄弟

別名を使用する場合は、重複する別名を含む別名表は、重複メンバー・アウトラインでのみ有効であるという、追加の制限が適用されます。

ノート:

メンバー名、ディメンション名または別名には、引用符(" ")、大カッコ([ ])またはタブを使用しないでください。たとえば、[New York].[Area 1]というメンバー名は作成できません。アウトラインの検証で、一連の無効な文字を含むメンバー名に対してエラーが表示されることはなく、アウトラインを保存できます。ただし、Essbaseでデータを正確に問い合せることはできません。

重複するメンバー名および別名を指定する構文

アウトライン内に重複メンバー名が存在している場合でも、データベース内のメンバーは、それぞれの非共有のメンバー名によって一意に識別されます。重複するメンバー名は、修飾名のフォーマットによって区別されます。重複メンバー名を指定するには、修飾名を使用する必要があります。

修飾メンバーや別名は、次のいずれかのフォーマットで指定できます。

  • 完全修飾メンバー名

  • 祖先を区別することによって修飾されるメンバー名

  • ショートカットの修飾メンバー名

ノート:

修飾名は、すべて別名で構成するか、すべてメンバー名で構成する必要があります。修飾名でメンバー名と別名を混在させることはできません。

完全修飾メンバー名

完全修飾メンバー名は、重複するメンバー名または別名、およびディメンション名までのすべての祖先から構成されます。それぞれの名前は大カッコ([])で囲まれ、ピリオド(.)で区切られる必要があります。構文は次のとおりです。

[DimensionMember].[Ancestors...].[DuplicateMember]

例:

[Market].[East].[State].[New York]
[Market].[East].[City].[New York]

祖先の区別によって修飾されたメンバー

祖先を区別することによって修飾されるメンバー名では、メンバー名または別名と、重複するメンバーまたは別名を一意に識別する祖先までを含むすべての祖先が使用されます。パス内の最初の祖先は、常に一意のメンバー名になります。それぞれの名前は大カッコ([])で囲まれ、ピリオド(.)で区切られる必要があります。構文は次のとおりです。

[DifferentiatingAncestor].[Ancestors...].[DuplicateMember]

例:

[State].[New York]
[City].[New York]

ショートカットの修飾メンバー名

Essbaseでは、重複メンバー・アウトライン内のメンバーのショートカットの修飾名が、内部で構築されます。スクリプト、スプレッドシートまたはMDX問合せに、ショートカットの修飾名を手動で挿入できます。

Essbaseでは、次に示す構文を使用して、ショートカットの修飾名を構築します。スクリプト、スプレッドシートおよびMDX問合せでメンバーを参照するときにEssbaseで使用される構文と同じ構文を使用することをお薦めしますが、必須ではありません。

表4-1 ショートカットの修飾名の構文

Scenario 修飾名の構文

世代2に重複メンバー名が存在する

[DimensionMember].[DuplicateMember]

[Year].[Jan]

[Product].[Jan]

アウトラインに重複メンバー名が存在するが、ディメンション内では一意である

[DimensionMember]@[DuplicateMember]

[Year]@[Jan]

重複メンバー名は一意の親を持つ

[ParentMember].[DuplicateMember]

[East].[New York]

世代3に重複メンバー名が存在する

[DimensionMember].[ParentMember].[DuplicateMember]

[Products].[Personal Electronics].[Televisions]

重複メンバー名が名前付き世代またはレベルに存在し、メンバーはその世代またはレベルでは一意である

[DimensionMember]@[GenLevelName]|[DuplicateMember]

[2006]@[Gen1]|[Jan]

シナリオによっては、区別する祖先メソッドがショートカットとして使用されます。

[DifferentiatingAncestor].[Ancestors...].[DuplicateMember]

[2006].[Qtr1].[Jan]

一意のメンバー名アウトライン内の修飾メンバー名

修飾メンバー名は、一意のメンバー名アウトライン(重複メンバー名が有効になっていないアウトライン)でのメンバー名の参照にも適用できます。修飾メンバー名を使用すると、共有メンバーと元のメンバーを区別できます。

たとえば、Sample Basicデータベースにおいて、メンバー[100-20]は親[100]の下の元のメンバーで、親[Diet]の下に共有メンバーが関連付けられています。次の問合せで示すように、共有メンバー[100-20]は、一意の名前[Diet].[100-20]を使用して明示的に参照できます。

SELECT
 {Sales} 
ON COLUMNS,
 {[[Diet]].[100-20]]]} PROPERTIES MEMBER_UNIQUE_NAME
ON ROWS
FROM Sample.Basic;

この例の二重の閉じ大カッコは、エスケープ文字として必要です。MDX構文の詳細は、重複するメンバー名および別名を指定するMDX構文を参照してください。