Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

キューブ継承を使用する方法

場合によっては、類似した複数のキューブの定義が必要になります。Business Intelligence には単純な継承メカニズムが用意されていて、これらのキューブをさらに容易に定義できます。ここでは、このメカニズムの使用方法を説明します。説明している手順の一部ではアーキテクトを使用できません。代わりに ObjectScript をサポートする統合開発環境 (IDE) である Visual Studio Code またはスタジオを使用する必要があります。

キューブ継承の概要

キューブ継承メカニズムを使用するには、以下を実行します。

  1. "InterSystems IRIS Business Intelligence のモデルの定義" ガイドの "キューブの定義" で説明されている手順に従って、1 つのキューブ・クラスを定義します。このキューブには、類似するすべてのキューブで想定される主要な項目が含まれ、親キューブとして機能します。

  2. 必要に応じて、このキューブを抽象としてマークし、直接使用できないようにすることができます。

    1. BI インスタンスでスタジオ・セッションを開き、アナリティクス・ネームスペースにいることを確認します。

    2. XData 定義で <cube> 要素を見つけて、属性のリストで abstract="true" を設定します。これにより、コンパイラによるキューブの検証、アナライザによるキューブの表示、およびユーザによるキューブに対するクエリの実行が行われなくなります。

    3. 変更内容を保存します。

  3. 子キューブをそれぞれのキューブ・クラスで定義します。この手順は、親キューブの定義に使用する手順からは外れています。

    1. BI インスタンスで、管理ポータルに管理者権限を持つユーザとしてログインします。

    2. [ホーム][アナリティクス][アーキテクト] に移動します。

    3. [新規作成] ボタンをクリックします。

    4. [定義タイプ][キューブ] を選択します。

    5. [キューブ名] を入力し、オプションで、選択した [表示名] を入力します。

    6. [キューブのソース][キューブ] を選択します。

    7. [ベースキューブ] フィールドに、先ほど作成した親キューブの論理名を入力します。

    8. [キューブのクラス名] を入力し、オプションで [クラスの説明] を入力します。

    9. [OK] をクリックして、子キューブを作成します。既定では、この方法で作成されたキューブは親キューブからすべての定義を継承します。各キューブは 1 つのベース・キューブのみを持つことができますが、ベース・キューブ自体は他のキューブから継承できます。

  4. 親キューブが子キューブの前にコンパイルされていることを確認してください。モデル・ビューワの右側にある [詳細] ペインで、[依存] フィールドに親キューブの論理名を入力します。

  5. 必要に応じて、親キューブで指定されたディメンジョン、メジャー、またはその他の最上位レベル要素を再定義します。そのためには、子キューブで定義を指定し、親キューブと同じ論理名を使用します。新しい定義で、親キューブからの対応する定義が完全に置換されます。"項目の非表示または削除" も参照してください。

  6. 必要に応じて、子キューブで追加の定義 (ディメンジョン、メジャー、リストなど) を指定します。

キューブ継承メカニズムにクラス継承とのリレーションシップはありません。各サブキューブは独自のファクト・テーブルとインデックスを保持し、(実行時に) これらは親キューブに依存しません。キューブ継承メカニズムは、構築時にのみ使用され、そのキューブの定義にのみ影響します。

キューブ継承とアーキテクト

アーキテクトでサブキューブを表示する際は、継承要素を表示またはオーバーライドしたり、新しい要素を定義したりできます。左側の領域にはキューブのソース・クラスが表示されるため、このクラスから項目をドラッグ・アンド・ドロップして、サブキューブ内の要素として使用できます。アーキテクトの中央の領域には、継承項目 (斜体) とローカル定義項目 (通常書体) の両方が表示されます。

アーキテクトの中央の領域で継承項目を選択すると、[詳細] ペインの上部に以下のように表示されます。

Message saying that this item has been inherited from another cube, with a button below it that says Customize.

[詳細] ペインの残り部分は表示専用です。

以下のサブセクションでは、継承項目を再定義する方法、オーバーライド項目を削除する方法、およびローカル要素を追加する方法を説明します。キューブのコンパイルと構築については、"InterSystems Business Intelligence のモデルの定義" を参照してください。サブキューブは、その他の種類のキューブと同じように扱われます。

継承要素の再定義

継承要素を再定義するには、その要素を中央の領域でクリックしてから、右側の [詳細] ペインで [カスタマイズ] ボタンをクリックします。カスタマイズする要素が最上位レベル要素でない場合は、その要素が含まれた最上位レベル要素をクリックしてから、右側の [詳細] ペインで [カスタマイズ] ボタンをクリックします。

[カスタマイズ] をクリックすると、親キューブからサブキューブに定義がコピーされて、継承された定義をオーバーライドするローカル定義が作成されます。この時点で、このローカル定義を編集できます。

オーバーライド項目の削除

継承された定義をオーバーライドするローカル定義を削除する手順は以下のとおりです。

  1. アーキテクトの中央領域で、その項目の行の [X] をクリックします。

  2. [OK] をクリックしてこの操作を確定します。

ローカル要素の追加

サブキューブにローカル要素を追加するには、[要素の追加] ボタンを使用するか、通常のドラッグ・アンド・ドロップ操作を使用します (InterSystems Business Intelligence のモデルの定義を参照)。

%cube ショートカット

親キューブに %cube 変数を使用するソース式が含まれている場合は、そのキューブをシステムで構築できるようにするために、以下のいずれかの操作を実行する必要があります。

  • 親キューブ・クラスを拡張するように、子キューブ・クラスを変更します (つまり、クラス継承を使用します)。

  • %cube を使用する要素をオーバーライドします。ローカル定義内で、%cube を通常の完全構文 (##class(package.class)) に置換します。

項目の非表示または削除

メジャー、ディメンジョン、計算メンバ、または計算メジャーを非表示にするには、その項目のオーバーライドを追加して、そのオーバーライドで [隠し] オプションを選択します。この場合でもその項目は作成されますが、アナライザには表示されません。

レベルまたは階層を非表示にするには、それらが含まれているディメンジョンを再定義します。そのためには、そのディメンジョンのオーバーライドを追加します。そのオーバーライドで、このディメンジョンに含まれる必要のある階層とレベルをすべて定義します。継承されたディメンジョンは、この新しいディメンジョンに完全に置き換えられます。例えば、新しいディメンジョンでは、親キューブ内の対応するディメンジョンよりも少ない、または多い数のレベルを定義できます。

継承とリレーションシップ

親キューブにリレーションシップがあると、これらのリレーションシップは継承されますが、必ずしも便利な方法で継承されるとは限りません。リレーションシップは必ず元のキューブを指すためです。

例えば、2 つのキューブ (Patient と Encounter) が相互に関連付けられていて、それぞれにサブキューブ (CustomPatient と CustomEncounter) を作成するとします。既定では、CustomPatient には元の Encounter キューブを指すリレーションシップがあります。同様に、CustomEncounter キューブには Patient キューブを指すリレーションシップがあります。CustomPatient と CustomEncounter との間にリレーションシップが必要な場合、そのリレーションシップを明示的にサブキューブで定義する必要があります。

FeedbackOpens in a new tab