プロパティの定義
ここでは、Business Intelligence キューブでプロパティを定義する方法を説明します。
時間ディメンジョンおよび年齢ディメンジョンにプロパティを含めることはできません。
"このドキュメントに示したサンプルのアクセス方法" も参照してください。
プロパティの追加
既存のレベルにプロパティを追加する手順は以下のとおりです。
-
モデル・ビューワで、レベルまたはそのレベル内のプロパティをクリックします。
この操作によって、プロパティを追加する場所を示します。
-
レベルをクリックすると、そのレベルの他のすべてのプロパティの後に新しいプロパティが追加されます。
-
プロパティをクリックすると、そのプロパティの直前に新しいプロパティが追加されます。
-
-
[要素を追加] をクリックします。
ダイアログ・ボックスが表示されます。
-
[新規項目名の入力] に、プロパティ名を入力します。
他の種類のキューブ要素とは異なり、予約済みのプロパティ名があります。詳細は、"モデル要素の名前" を参照してください。
-
[プロパティ] をクリックします。
-
[OK] をクリックします。
-
モデル・ビューワで、プロパティを選択します。
-
詳細領域で、[プロパティ] または [式] の値を指定します。"ディメンジョンまたはレベルのソース値の定義" および "ソース式の詳細" を参照してください。
または、クラス・ビューワからクラス・プロパティをドラッグして、これをモデル・ビューワのレベルにドロップします。次に、必要に応じて詳細領域で変更を加えます。
"その他の共通オプション" も参照してください。
リスト・ベースのレベルのプロパティの定義
関連付けられているレベルがリスト・ベースである場合、以下のようにプロパティを定義する必要があります。
-
[式] の値を指定します。
-
式で、%value 変数を参照します。この変数には、関連付けられているリスト要素の値が含まれます。
例えば、Patients キューブの Allergy Severities レベルを考えてみましょう。このレベルには、このレベルのメンバの並べ替え順序を制御するプロパティがあります。このプロパティ (SeveritySort) は、以下の式で定義されます。
%cube.GetSeveritySort(%value)
これにより、キューブ・クラスの GetSeveritySort() メソッドをアレルギー重症度 (文字列) を引数として実行します。メソッドは、整数を返します。
書式文字列の指定
スタジオでは、書式文字列を指定できます。これにより、プロパティの表示形式を指定できます。この形式設定は、アナライザで (または、手動で MDX クエリを作成することで) オーバーライドできます。詳細は、"<property>" を参照してください。
実行時のプロパティの値の取得
場合によっては、プロパティの値が適切なソース・テーブルから実行時に取得されるように、プロパティを定義できます。要件は以下のとおりです。
-
このプロパティに対して [実行時に値を取得] オプションを選択します。
-
親レベル (取得するプロパティが含まれるレベル) では、そのレベルのソース・プロパティまたはソース式は ID として評価される必要があります。
システムはそのことを想定して (少なくともこのレベルで)、ソース・データを正規化します。すなわち、そのレベルでは、データは別のテーブルに存在し、ソース・テーブルにはそのテーブルへのリンクが格納されます。
この要件は、既定では、このレベルのメンバ名が ID であり、通常はユーザによる使用には適していないことを意味します。この場合は、メンバの表示名として使用するため、このレベルのプロパティも構成します。これは、同じプロパティでも別のプロパティでもかまいません。
"プロパティ名をメンバ名として使用する方法" を参照してください。
レベル内のプロパティの順序の変更
レベル内のプロパティの順序を変更する手順は以下のとおりです。
-
レベル内でプロパティを上に移動するには、そのレベルの行で上矢印をクリックします。
-
レベル内でプロパティを下に移動するには、そのレベルの行で下矢印をクリックします。
レベル内のプロパティの順序はレベルのメンバの並べ替え順序に影響する場合があります。"メンバの並べ替え順序の指定 (データ・レベルの場合)" を参照してください。
ディメンジョン・テーブル内の列名の指定
キューブ・クラスのコンパイル時に、システムは 1 つのファクト・テーブル・クラスと、ディメンジョンに関連するクラスを生成します。キューブの構築時に、これらのテーブルに値が入力されます。詳細は、"ファクト・テーブルおよびディメンジョン・テーブルの詳細" を参照してください。レベルのプロパティは、それに対応するディメンジョン・テーブルに格納されます。
既定では、システムによってファクト・テーブルの列名が生成されますが、その代わりに使用する列名を指定することもできます。これを実行するには、各プロパティの [レベル・テーブルのフィールド名] オプションに値を指定します。一意の名前を使用するように注意してください。
プロパティの特殊な用途
既定では、プロパティは属するレベルのメンバに何も影響しません。ただし、プロパティを使用して、以下の方法でメンバを変更することができます (方法は組み合わせることもできます)。
-
プロパティ値をメンバ名として使用し、レベル定義で定義された既定のメンバ名をオーバーライドできます。
そのためには、[メンバの名前として使用] オプションおよび、(必要に応じて) [実行時に値を取得] オプションを使用します。"プロパティ値をメンバ名として使用する方法" を参照してください。
[メンバ名として使用] を選択し、ソース値が NULL の場合は、適切なヌル置換文字列が使用されることに注意してください。これはレベルまたはキューブのヌル置換文字列 (それぞれ定義がある場合) です。"レベルに対するヌル置換文字列の指定" および "キューブ・オプションの指定" を参照してください。
-
プロパティ値を使用して、レベル内のメンバの既定の並べ替え順序を指定できます。
そのためには、[プロパティ値でメンバを並べ替え] オプションを使用します。"メンバの並べ替え順序の指定 (データ・レベルの場合)" を参照してください。
範囲式を使用するレベルでは、[プロパティ値を基準にしたメンバの並べ替え] オプションは何の効果もありません。
-
プロパティ値はメンバのツールのヒントとして使用できます。これは、スペースの関係上メンバ名には短い名前を使用する必要があり、同時に各メンバについて十分な情報を提供する必要がある場合に便利です。このようにプロパティを使用するには、isDescription 属性を "true" に指定します。"キューブ・クラスのリファレンス情報" の "<property>" を参照してください。
"メンバ・キーおよび名前の適切な定義" に記載されているように、レベル内のメンバ名は一意である必要はありません。ただし、適切に定義されたキューブでは、指定されたレベルの各メンバには一意のキーがあります。ユーザがアナライザでクエリを作成すると、システムは自動的に名前でなくメンバ・キーを使用します。ユーザは、メンバのリストを展開して、同じ名前を持つ異なるメンバを個別にドラッグ・アンド・ドロップすることができます。便宜を考慮して、値がキーのレベル・プロパティを追加することもお勧めします。このようなプロパティでは、レベルで使用されるものと同じソース・プロパティまたはソース式をそのプロパティの基にするだけです。これで、このプロパティを表示してシステムがメンバに使用する一意の ID を決定できます。