Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

その他の開発作業

ユーザのニーズやビジネス要件によっては、以下の開発作業の一部またはすべてを追加で行うことが必要な場合があります。

用紙サイズの追加

ダッシュボード・ウィジェットを 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 ^MyDeepSee.AuditCode"
    

    このネームスペースでクエリを実行するたびに、^DeepSee.AuditQueryCode に指定したコードが DeepSee で実行され、それによってルーチンまたはクラス・メソッドが呼び出されます。

同様に、ユーザがダッシュボードにアクセスした際に実行されるカスタム・コードを追加するには、以下のようにします。

  • カスタム・コードを含むクラス・メソッド、ルーチン、またはサブルーチンを記述します。

  • ^DeepSee.AuditCode を、そのメソッド、ルーチン、またはサブルーチンを実行する有効な ObjectScript 文を含む文字列と等しく設定します。

    このネームスペースでダッシュボードにアクセスするたびに、^DeepSee.AuditCode に指定したコードが DeepSee で実行されます。

監査コードの要件とオプション

いずれかのシナリオの監査コードを定義する際、コードによって現在のデバイスに出力が書き込まれないようにします。また、コードによって Zen または DeepSee で必要な % 変数が削除されないようにします。

コードでは、以下の変数を使用できます。

  • $USERNAME — 現在のユーザの名前。

  • $ROLES — 現在のユーザのロール。

  • %dsQueryText — 現在のクエリのテキスト。

  • %dsCubeName — 現在のクエリで使用するキューブの論理名。

  • %dsResultSet%DeepSee.ResultSetOpens in a new tab の現在のインスタンス。必要に応じて、他の情報にアクセスするために使用できます。%DeepSee.ResultSetOpens in a new tab の使用方法の詳細は、このドキュメントで前述の “DeepSee クエリのプログラム実行” を参照してください。

  • %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 ^MyDeepSeeAuditLog($INCREMENT(^MyDeepSeeAuditLog))=auditentry
 quit

query
 set auditentry="At "_$ZDT($H,3)_", " _$USERNAME_" ran query: "_%dsQueryText
 set ^MyDeepSeeAuditLog($INCREMENT(^MyDeepSeeAuditLog))=auditentry
 quit

このルーチンを使用するには、以下の 2 行をターミナルで入力します。

SAMPLES>set ^DeepSee.AuditQueryCode="do query^DeepSeeAudit"
 
SAMPLES>set ^DeepSee.AuditCode="do dashboard^DeepSeeAudit"

監査ログを表示するには、ZWRITE を使用できます。以下に結果の例を示します (見やすくするために改行が追加されています)。

SAMPLES>zw ^MyDeepSeeAuditLog
^MyDeepSeeAuditLog=2
^MyDeepSeeAuditLog(1)="At 2014-06-20 16:26:38, SamSmith accessed dashboard: User Defined Listing.dashboard"
^MyDeepSeeAuditLog(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"
    
  • コードによって現在のデバイスに出力が書き込まれないようにします。

  • また、コードによって Zen または DeepSee で必要な % 変数が削除されないようにします。

このコードは、%DeepSee.UtilsOpens in a new tab%RunServerInitCode() メソッドによって呼び出されます。このメソッドは、DeepSee セッションが作成されるたび、またはバックグラウンド・エージェントが開始されるときに呼び出されます。

FeedbackOpens in a new tab