Business Intelligence コンテナ・クラスの作成
"クラスへの Business Intelligence 要素のパッケージ化" で説明したように、ピボット・テーブルなどのフォルダ項目を InterSystems IRIS® のクラスにパッケージ化できます。要素を必要な数だけ 1 つのクラスにパッケージ化できるので、多数の個別のファイルよりもエクスポートおよびインポートしやすくなります。
そのようなクラスを作成する手順は以下のとおりです。
-
クラスは %DeepSee.UserLibrary.ContainerOpens in a new tab を拡張したものである必要があります。
-
クラスには、Contents という名前の XData ブロックを含める必要があります。その XData ブロックに対して、以下のように XML ネームスペースを指定する必要があります。
[ XMLNamespace = "http://www.intersystems.com/deepsee/library" ]
-
この XData ブロック内の最上位の要素は、<items> でなければなりません。
<items> 要素内に XML 定義を必要な数だけ含めます。この定義は、スタジオでコピーすることも、エクスポート済みの XML ファイルからコピーすることもできます。次のセクションも参照してください。必要になる編集についての説明があります。
また、ファイルの先頭にある XML 宣言ではなく、定義部分のみをコピーして貼り付けるようにしてください。つまり、以下の行は XData ブロックにコピーしないでください。
<?xml version="1.0" encoding="UTF-8"?>
以下はその例です。
Class BI.Model.DashboardItems Extends %DeepSee.UserLibrary.Container
{
XData Contents [ XMLNamespace = "http://www.intersystems.com/deepsee/library" ]
{
<items>
<dashboard dashboard definition here ...
</dashboard>
<dashboard another dashboard definition here ...
</dashboard>
<pivot pivot definition here ...
</pivot>
<pivot another pivot definition here ...
</pivot>
<pivot yet another pivot definition here ...
</pivot>
</items>
}
}
このクラスのコンパイル時や、このクラスの %Process() インスタンス・メソッドの呼び出し時に、システムは XData ブロックに定義された項目を作成します。具体的には、それらの定義をユーザ・ポータルで使用する内部グローバルにインポートします。
同じクラスでは、%OnLoad() コールバックを定義することもできます。このコールバックは、それらの項目の設定時に必要な追加コードを実行できます。
クラス定義にパッケージ化されるピボット・テーブルとダッシュボードのサンプルは、サンプル・クラス BI.DashboardsEtc および HoleFoods.DashboardsEtc を参照してください。
コンテナ・クラスを削除しても、現在存在するピボット・テーブルやダッシュボードには影響しません。