Business Intelligence のその他のエクスポート/インポート・オプション
ここでは、Business Intelligence の要素をエクスポートおよびインポートするためのその他のオプションについて説明します。この情報は、実装プロセスの手順の一つとして、"クラスへの Business Intelligence 要素のパッケージ化" を補足するものです。
このページの内容は、ユーザが IDE に対するコードのエクスポートとインポートのプロセスを理解していることを前提としています。
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 を参照してください。
コンテナ・クラスを削除しても、現在存在するピボット・テーブルやダッシュボードには影響しません。
フォルダ項目のエクスポートとインポート
ここでは、フォルダ項目をエクスポートおよびインポートするための古い API について説明します。
プログラムによるフォルダ項目のエクスポート
フォルダ項目をプログラムでエクスポートするには、以下のコマンドを使用します。
Do ##class(%DeepSee.UserLibrary.Utils).%Export(itemname,filename)
以下は、この指定の説明です。
-
itemname は項目の完全名です (項目が属しているフォルダの名前を含みます)。
-
ピボット・テーブルでは拡張子 .pivot を追加します。
-
ダッシュボードでは拡張子 .dashboard を追加します。
-
ウィジェットでは拡張子 .widget を追加します。
-
テーマでは拡張子 .theme を追加します。
-
-
filename は、作成するファイルのフル・パスとファイル名です。ファイルは XML ファイルであるため、ファイル名の末尾に .xml を使用することをお勧めします。
以下はその例です。
set DFIname="Chart Demos/Area Chart.pivot"
set filename="c:/test/Chart-Demos-Area-Chart-pivot.xml"
do ##class(%DeepSee.UserLibrary.Utils).%Export(DFIname,filename)
set DFIname="KPIs & Plugins/KPI with Listing.dashboard"
set filename="c:/test/KPIs-Plugins-KPI-with-Listing-dashboard.xml"
do ##class(%DeepSee.UserLibrary.Utils).%Export(DFIname,filename)
代替手法 (複数の項目のエクスポート)
複数の項目をプログラムによって 1 つの XML ファイルにエクスポートするには、$system.OBJ.Export() メソッドを使用します。このメソッドの最初の引数と 2 番目の引数を以下に示します。
-
items は以下のような多次元配列です。
配列ノード ノード値 items("full-folder-item-name.DFI")。ここで、items は配列名で、full-folder-item-name.DFI はフォルダ・アイテムの完全名です。大文字と小文字の区別も含めて、スタジオに表示されるとおりになります。 "" この引数は多次元配列なので、$system.OBJ.Export() メソッドを使用する際、その前にピリオドを付ける必要があります。
-
filename は、作成するファイルのフル・パスとファイル名です。ファイルは XML ファイルであるため、ファイル名の末尾に .xml を使用することをお勧めします。
以下に例を示します。
set items("Chart Demos-Area Chart.pivot.DFI")=""
set items("Chart Demos-Bar Chart.pivot.DFI")=""
set items("Chart Demos-Bubble Chart.pivot.DFI")=""
set filename="c:/test/Chart-Samples.xml"
do $system.OBJ.Export(.items,filename)
このメソッドを使用して、クラスなどの他の項目をエクスポートすることもできます。詳細は、%SYSTEM.OBJOpens in a new tab のクラス・リファレンスを参照してください。
プログラムによるフォルダ項目のインポート
フォルダ項目をプログラムでインポートするには、以下のコマンドを使用します。
Do ##class(%DeepSee.UserLibrary.Utils).%Import(pFile, pReplace, pVerbose)
以下は、この指定の説明です。
-
pFile は、インポートするファイルのフル・パスとファイル名です。
-
pReplace が True の場合、同じ名前を持つ既存の項目が置換されます。既定値は False です。
-
pVerbose が True の場合、ステータスがコンソールに書き込まれます。既定値は True です。
以下はその例です。
set filename="c:/test/Chart-Demos-Area-Chart-pivot.xml"
do ##class(%DeepSee.UserLibrary.Utils).%Import(filename,1,1)