Business Intelligence のその他の開発作業
ユーザのニーズやビジネス要件によっては、Business Intelligence の実装の一環として、ここで説明する開発作業の一部またはすべてを追加で行うことが必要な場合があります。
用紙サイズの追加
ダッシュボード・ウィジェットを PDF ファイルに出力するときに、既定で用意されている一連の用紙サイズが提示され、ユーザはその中からサイズを選択できます。この一連のサイズを拡張するには、必要に応じて、以下のように ^DeepSee.PaperSizes グローバルにノードを追加します。
ノード | 値 |
---|---|
^DeepSee.PaperSizes(n)。ここで、n は整数です。 |
$LISTBUILD(sizename,dimensions)。ここで、sizename はサイズの名前です。dimensions ではディメンジョンを指定します。dimensions は以下のいずれかの形式である必要があります。 widthxheight in widthxheight mm height と単位名の間にはスペースを 1 つ記述する必要があります。 |
以下はその例です。
Set ^DeepSee.PaperSizes(1) = $LB("My Sticker","100x100 mm")
新しいサイズは直ちに使用可能になります。
ユーザ・アクティビティの監査
ユーザがクエリを実行したり、ダッシュボードにアクセスしたりするたびに、監査ログへの書き込みなど、カスタム・コードを実行することができます。
ユーザがクエリを実行したときに実行されるカスタム・コードを追加するには、以下の 1 回限りの設定手順を実行します。
-
カスタム・コードを含むクラス・メソッド、ルーチン、またはサブルーチンを記述します。最初のサブセクションには要件とオプションに関する詳細が記載されており、2 番目のサブセクションには例が示されています。
-
^DeepSee.AuditQueryCode を、そのメソッド、ルーチン、またはサブルーチンを実行する有効な ObjectScript 文を含む文字列と等しく設定します。
例えば、ターミナルで以下の操作を実行します。
set ^DeepSee.AuditCode="do ^MyBIAuditCode"
このネームスペースでクエリを実行するたびに、^DeepSee.AuditQueryCode に指定したコードが実行され、それによってルーチンまたはクラス・メソッドが呼び出されます。
同様に、ユーザがダッシュボードにアクセスした際に実行されるカスタム・コードを追加するには、以下のようにします。
-
カスタム・コードを含むクラス・メソッド、ルーチン、またはサブルーチンを記述します。
-
^DeepSee.AuditCode を、そのメソッド、ルーチン、またはサブルーチンを実行する有効な ObjectScript 文を含む文字列と等しく設定します。
このネームスペースでダッシュボードにアクセスするたびに、^DeepSee.AuditCode に指定したコードが実行されます。
監査コードの要件とオプション
いずれかのシナリオの監査コードを定義する際、コードによって現在のデバイスに出力が書き込まれないようにします。また、コードによって InterSystems IRIS® データ・プラットフォームで必要な % 変数が削除されないようにします。
コードでは、以下の変数を使用できます。
-
$USERNAME — 現在のユーザの名前。
-
$ROLES — 現在のユーザのロール。
-
%dsQueryText — 現在のクエリのテキスト。
-
%dsCubeName — 現在のクエリで使用するキューブの論理名。
-
%dsResultSet — %DeepSee.ResultSetOpens in a new tab の現在のインスタンス。必要に応じて、他の情報にアクセスするために使用できます。%DeepSee.ResultSetOpens in a new tab の使用方法の詳細は、"Business Intelligence クエリのプログラムによる実行" を参照してください。
-
%dsDashboard — アクセス中のダッシュボードの名前 (該当する場合)。
一般的に、監査コードは出力をファイルまたはグローバルに書き込みます。
%dsQueryText、%dsCubeName、および %dsResultSet は、^DeepSee.AuditQueryCode を使用する監査ルーチンのみで使用できます。%dsDashboard は、^DeepSee.AuditCode を使用するルーチンのみで使用できます。
例
以下に簡単な監査ルーチンの例を示します。^DeepSee.AuditQueryCode で使用するサブルーチンが 1 つあり、^DeepSee.AuditCode で使用するサブルーチンが別に 1 つあります。
; this is the routine DeepSeeAudit
quit
dashboard
set auditentry="At "_$ZDT($H,3)_", " _$USERNAME_" accessed dashboard: "_%dsDashboard
set ^MyBIAuditLog($INCREMENT(^MyBIAuditLog))=auditentry
quit
query
set auditentry="At "_$ZDT($H,3)_", " _$USERNAME_" ran query: "_%dsQueryText
set ^MyBIAuditLog($INCREMENT(^MyBIAuditLog))=auditentry
quit
このルーチンを使用するには、以下の 2 行をターミナルで入力します。
SAMPLES>set ^DeepSee.AuditQueryCode="do query^DeepSeeAudit"
SAMPLES>set ^DeepSee.AuditCode="do dashboard^DeepSeeAudit"
監査ログを表示するには、ZWRITE を使用できます。以下に結果の例を示します (見やすくするために改行が追加されています)。
SAMPLES>zw ^MyBIAuditLog
^MyBIAuditLog=2
^MyBIAuditLog(1)="At 2014-06-20 16:26:38, SamSmith accessed dashboard: User Defined Listing.dashboard"
^MyBIAuditLog(2)="At 2014-06-20 16:26:38, SamSmith ran query: SELECT NON EMPTY {[MEASURES].[AMOUNT SOLD],
[MEASURES].[UNITS SOLD]} ON 0,NON EMPTY [DATEOFSALE].[ACTUAL].[YEARSOLD].MEMBERS ON 1 FROM [HOLEFOODS]"
サーバ初期化コードの定義
サーバ初期化コードを定義する手順は以下のとおりです。
-
有効なObjectScript 文を ^DeepSee.InitCode グローバルに配置します。
例えば、ターミナルで以下の操作を実行します。
set ^DeepSee.InitCode="do ^myroutine"
-
コードによって現在のデバイスに出力が書き込まれないようにします。
-
また、コードによって InterSystems IRIS で必要な % 変数が削除されないようにします。
このコードは、%DeepSee.UtilsOpens in a new tab の %RunServerInitCode() メソッドによって呼び出されます。このメソッドは、InterSystems IRIS Business Intelligence セッションが作成されるたびに呼び出されます。