アプリケーションからダッシュボードへのアクセス
この章では、アプリケーションから DeepSee ダッシュボードと DeepSee ユーザ・ポータルにアクセスする方法を説明します。以下のトピックについて説明します。
ダッシュボードへのアクセス
ダッシュボードにアクセスするには、以下の形式の URL を使用します。
http://localhost:57772/csp/samples/_DeepSee.UserPortal.DashboardViewer.zen?DASHBOARD=dashbdname.dashboard
localhost:57772 は Caché が動作しているサーバおよびポート、samples はダッシュボードが定義されているネームスペース、dashbdname はダッシュボードの名前です (ダッシュボードが属しているフォルダがあれば、その名前を含みます)。
より一般的には、以下の形式の URL を使用します。
http://localhost:57772/csp/samples/_DeepSee.UserPortal.DashboardViewer.zen?parmstring&parmstring&parmstring...
parmstring はパラメータです。この後に等号記号と値が順に続きます。以下に例を示します。
DASHBOARD=Drill%20Options.dashboard
前に示したように、アンパサンド (&) を使用して、複数のパラメータ文字列を結合します。以下はその例です。
DASHBOARD=Drill%20Options.dashboard&NOMODIFY=1
URL のエンコード
特定の文字が URL を表すために予約されていますが、その他の文字は許可されていません。これに該当する文字を parmstring に含めるには、その文字を URL エンコードされたバージョンの文字に置き換えます (このエンコードはパーセント・エンコードと呼ぶこともあります)。以下の方法で、この処理を最も容易に実現できます。
-
予約されている文字または許可されていない文字を含む可能性のあるすべての文字列を特定します。
-
これに該当する文字列ごとに、以下を順番に実行します。
-
UTF-8 エンコードへの変換
-
URL エンコードされたバージョンの文字列を作成します。
これらの変換をサーバ上で実行している場合、$ZCONVERT や $TRANSLATE などの ObjectScript 関数を使用できます。以下に例を示します。
set UTF8db=$ZCONVERT(dashboardname,"O","UTF8") set escapeddb=$ZCONVERT(UTF8db,"O","URL") set url=baseurl_"DASHBOARD="_escapeddb
これらの変換をクライアント上で実行している場合、適切なクライアント関数を使用してください。例えば、クライアントが JavaScript を使用する場合は、encodeURI()Opens in a new tab 関数を使用します。
-
または、$TRANSLATE 関数などの他のロジックを使用します。頻繁に使用される文字のいくつかを以下に示します。
文字 | URL エンコードされたバージョン |
---|---|
スペース文字 | %20 |
& | %26 |
, | %2C |
URL エンコードされた文字のリストはインターネット上で確認できます。1 つのリソースとして Wikipedia (http://en.wikipedia.org/wiki/Percent-encodingOpens in a new tab) が挙げられます。
使用可能な URL パラメータ
ダッシュボードの URL 内では、以下のパラメータ (大文字と小文字が区別されます) を使用できます。一部のパラメータには、平文のバージョンか、暗号化されたバージョンのどちらかを使用できます。例えば、ダッシュボードの URL には、暗号化されたバージョンのダッシュボード名を含めることができます。
DASHBOARD=dashbdname.dashboard
このパラメータは、表示するダッシュボードを指定します。このパラメータまたは XDASHBOARD パラメータを指定する必要があります。
dashbdname はダッシュボードの名前です (ダッシュボードが属しているフォルダがあれば、その名前を含みます)。以下はその例です。
DASHBOARD=Dashboards/Dashboard%20with%20Filters%20and%20Listing%20Button.dashboard
この %20 は、スペース文字を表します。前述の “URL のエンコード” を参照してください。
XDASHBOARD=encryptedvalue
暗号化されたバージョンの DASHBOARD パラメータです。パラメータは、CSP セッションのコンテキスト内でのみ使用できます。このパラメータまたは DASHBOARD パラメータを指定する必要があります。
encryptedvalue を作成するには、最初に、ダッシュボード名を用意します (このダッシュボードが属するフォルダがある場合は、そのフォルダを含む)。以下はその例です。
Dashboards/Dashboard with Filters and Listing Button.dashboard
URL エスケープ表記を含めてはいけません。例えば、スペースは、スペース文字のまま残します。
その後で、%CSP.PageOpens in a new tab の Encrypt() クラス・メソッドを使用して、この値を暗号化します。Encrypt() から返された値を、XDASHBOARD パラメータの値として使用します。
EMBED=1
このパラメータが 1 の場合、ダッシュボードは埋め込みモードで表示されます。これは、NOTITLE=1、NOMODIFY=1、NOBORDER=1、および WORKLISTS=0 に設定する場合と同じです。
XEMBED=encryptedvalue
暗号化されたバージョンの EMBED パラメータです。パラメータは、CSP セッションのコンテキスト内でのみ使用できます。
encryptedvalue を作成するには、最初に、EMBED に使用する値を用意します。その後で、%CSP.PageOpens in a new tab の Encrypt() クラス・メソッドを使用して、この値を暗号化します。Encrypt() から返された値を、XEMBED パラメータの値として使用します。
NOTITLE=1
このパラメータが 1 の場合、ダッシュボードはタイトル領域なしで表示されます。タイトル領域は、以下の例のように最上部の領域です。
NOMODIFY=1
このパラメータが 1 の場合、ダッシュボードは変更できません。このオプションによって、[メニュー] から項目が削除されます。また、ウィジェットの編集オプションも抑制されるため、ウィジェットには最小化、最大化、および削除のオプションのみが右上に表示されます。
NOBORDER=1
このパラメータが 1 の場合、ダッシュボードは境界線なしで表示されます。
RESIZE=boolean
ウィジェットのサイズ変更と移動が可能かどうかを指定します。boolean が 1 (既定) の場合、ウィジェットのサイズ変更と移動が可能です。boolean が 0 の場合、これらは実行できません。
WORKLISTS=n
n は 0、1、または 2 です。このパラメータは、左側に表示するワークリスト領域の数を指定します。
XWORKLISTS=encryptedvalue
暗号化されたバージョンの WORKLISTS パラメータです。パラメータは、CSP セッションのコンテキスト内でのみ使用できます。
encryptedvalue を作成するには、最初に、WORKLISTS に使用する値を用意します。その後で、%CSP.PageOpens in a new tab の Encrypt() クラス・メソッドを使用して、この値を暗号化します。Encrypt() から返された値を、XWORKLISTS パラメータの値として使用します。
SCHEME=schemename
ダッシュボードの配色を指定します (既定値を使用しない場合)。schemename には、[設定] ページの [一般] タブにリストされている配色を指定します。このドキュメントで前述の “基本設定の指定” を参照してください。
SETTINGS=name1:value1;name2:value2;name3:value3;...;
name1、name2、name3 (以降同様) は、次のセクションで説明するように、ダッシュボードの設定の名前です。また、value1、value2、value3 (以降同様) は、その設定の値です。
このパラメータは、URL に複数回含めることができます。
例えば、ダッシュボード内のすべてのウィジェットに値を渡すには、以下の形式の URL を使用します。
basic_dashboard_url&SETTINGS=name:value;name:value;name:value;...;
ダッシュボード内の特定のウィジェットに値を渡すには、以下のバリエーションを使用します。
basic_dashboard_url&SETTINGS=TARGET:widgetname;name:value;name:value;name:value;...;
ダッシュボード内の複数のウィジェットに値を渡すには、以下のバリエーションを使用します。
basic_dashboard_url&SETTINGS=...;&SETTINGS=...;&SETTINGS=...;...;
特定のウィジェットに対する設定は、常にすべてのウィジェットに対する設定よりも優先されます。それ以外の場合、設定は指定された順に適用されます。ある設定がもう 1 つの設定と矛盾する場合、後に指定された設定が適用されます。これらの設定がユーザ設定よりも優先されることはありません。
XSETTINGS=encryptedvalue
暗号化されたバージョンの SETTINGS パラメータです。パラメータは、CSP セッションのコンテキスト内でのみ使用できます。
encryptedvalue を作成するには、最初に、SETTINGS に使用する値を用意します。その後で、%CSP.PageOpens in a new tab の Encrypt() クラス・メソッドを使用して、この値を暗号化します。Encrypt() から返された値を、XSETTINGS パラメータの値として使用します。
CacheUserName=myuser&CachePassword=mypass
myuser は Caché のユーザ名、mypass は対応するパスワードです。ユーザがまだ Caché にログインしていない場合は、これらのパラメータを含めます。
AUTOSAVE
ダッシュボードの自動保存されたバージョンを要求します。自動保存機能については、このドキュメントで前述した “基本設定の指定” を参照してください。
SETTINGS パラメータのオプション
SETTINGS URL パラメータには、以下のリストに記載された設定を使用できます。SETTINGS 文字列はすべてのウィジェットに適用されるか、特定のウィジェットに適用されます。SETTINGS 文字列は必要なだけ含めます。以下はその例です。
basic_dashboard_url&SETTINGS=...;&SETTINGS=...;&SETTINGS=...;...;
Caché が SETTINGS パラメータを解析する際、すべてのセミコロンは 2 つの設定文字列の区切り記号と見なされます。セミコロンを区切り文字として扱われないように含めるには、そのセミコロンを %3B%3B に置き換えます (このシーケンスは、URL エンコードされた 2 つのセミコロンです。URL エンコードされた 2 つのセミコロンの使用は、解析処理の実行方法のために必要になります)。
TARGET:widgetname
この一連の設定を適用するウィジェットを指定します。すべてのウィジェットに適用する設定が必要な場合、このパラメータは SETTINGS 文字列で省略します。
FILTER:filter_name.filter_values
指定のウィジェットをフィルタ処理する方法を指定します。引数は、以下のようにターゲット・ウィジェットの詳細によって異なります。
シナリオ | filter_name | filter_values |
---|---|---|
ターゲット・ウィジェットでピボット・テーブルを表示する | [dimension].[hierarchy].[level] の URL エンコード・バージョン | “設定の構成” の章の “指定可能なフィルタの既定値” に示されている、指定可能なフィルタ値の URL エンコードされたバージョン |
ターゲット・ウィジェットで KPI を表示する | 対象の KPI に定義されているフィルタ名の URL エンコードされたバージョン | このフィルタに対して KPI で定義している指定可能値の URL エンコードされたバージョン |
URL エンコードされた文字列の作成の詳細は、この章で前述した “URL のエンコード” を参照してください。
メモ :
-
filter_name.filter_value の代わりに特殊なトークン $$$FILTERS を使用できます。これは、URL をカスタム・ナビゲート・アクション (特定のダッシュボードから別のダッシュボードにアクセスします。このドキュメント内の “別のダッシュボードの表示” を参照してください) で使用する場合に便利です。このシナリオでは、$$$FILTERS は元のダッシュボードの現在のフィルタ値によって置換されます。以下に例を示します。
FILTER:$$$FILTERS
ターゲット・ダッシュボードに同じフィルタが含まれます。
-
複数のフィルタ仕様を使用できます。そのためには、チルダ (~) でそれぞれを区切ります。以下はその例です。
FILTER:filterspec1~filterspec2
ここで、各 filterspec は filter_name.filter_values です。
-
各ターゲット・ウィジェットは、同じフィルタを使用するフィルタ・コントロール (非表示の場合もあります) も含めるように構成する必要があります。例えば、ウィジェットに Cities フィルタ・コントロールが含まれていて、その他のフィルタ・コントロールが含まれていないとします。ダッシュボードの URL には、&SETTINGS=FILTER:[Cities].%26[Centerville] を含めることができます。これにより、このウィジェットがフィルタ処理されます。&SETTINGS=FILTER:[ZIP].%26[34577] を含めたとしても、ウィジェットには作用しません。
-
同じフィルタの複数のメンバをまとめて使用するには、それらのメンバをリストするセット式を使用します。“設定の構成” の章の “指定可能なフィルタの既定値” を参照してください (SETTINGS 文字列に同じフィルタを複数回指定すると、最後に指定した値が使用されます。多くの場合、これは目的の動作ではありません)。
VARIABLE:variable_name.variable_value
指定のピボット変数の値を指定します。ピボット変数の詳細は、"DeepSee アナライザの使用法" の “ピボット変数の定義と使用” を参照してください。
variable_name.variable_value の代わりに特殊なトークン $$$VARIABLES を使用できます。これは、URL をカスタム・ナビゲート・アクション (特定のダッシュボードから別のダッシュボードにアクセスします。このドキュメント内の “別のダッシュボードの表示” を参照してください) で使用する場合に便利です。このシナリオでは、$$$VARIABLES は、元のダッシュボードで指定されている、指定されたピボット変数の現在の値に置換されます。以下はその例です。
VARIABLE:$$$VARIABLES
ROWCOUNT:n
表示する行の最大数 (n) を指定します。これは、メンバが行として表示される場合にのみ適用されます。
COLCOUNT:n
表示する列の最大数 (n) を指定します。これは、メンバが列として表示される場合にのみ適用されます。
ROWSORT:measure
行の並べ替えの基準にするメジャーを指定します。measure は、メジャーの MDX 識別子です。以下はその例です。
ROWSORT:[MEASURES].[mymeasure]
これらの識別子の角括弧は省略できません (DeepSee でのその他の MDX の使用法とは異なります)。
COLSORT:[MEASURES].[my measure]
列の並べ替えの基準にするメジャーを指定します。measure は、メジャーの MDX 識別子です。ROWSORT を参照してください。
ROWSORTDIR:sortkeyword
行の並べ替え方法を指定します。sortkeyword は以下のいずれかになります。
-
ASC — 昇順で並べ替えられますが、すべての階層は保持されます。
-
DESC — 降順で並べ替えられますが、すべての階層は保持されます。
-
BASC — 昇順で並べ替えられ、階層は保持されません。
-
BDESC — 降順で並べ替えられ、階層は保持されません。
COLSORTDIR:sortkeyword
列の並べ替え方法を指定します。ROWSORTDIR を参照してください。
PORTLET:portlet_setting.value
ポートレット設定の値を指定します。これにより、その設定のすべての構成済み値が指定変更されます。他の SETTINGS オプションと同様に、この設定は、TARGET パラメータで指定されているすべてのウィジェットに適用されます (または、TARGET が指定されていない場合はすべてのポートレット・ウィジェットに適用されます)。
ここで、portlet_setting にはそのポートレットで定義されている設定の名前を指定し、value にはこの設定の許容値の URL エンコード・バージョンを指定する必要があります。URL エンコードされた文字列の作成の詳細は、この章で前述した “URL のエンコード” を参照してください。
複数のポートレット仕様を使用するには、それぞれの仕様をチルダ (~) で区切ります。次に例を示します。
PORTLET:portletspec1~portletspec2
ここで、各 portletspec は portlet_setting.value です。
ポートレットの定義については、“ダッシュボードで使用するポートレットの作成” の章を参照してください。
例を表示するには、[ウィジェットの例/カスタム・ポートレット] というダッシュボードを表示してから (丸い時計が表示されます)、次の文字列をブラウザ上の URL の末尾に追加します。
&SETTINGS=PORTLET:CIRCLE.0~SIZE.200
次に、Enter キーを押します。時計が四角形に変化して、以前よりもやや大きくなることを確認します。
例えば、以下はほとんどのウィジェットに対して列数を 3 に制限しますが、ウィジェット RegionVsYear に対しては列数を 1 に制限します。
&SETTINGS=TARGET:RegionVsYear;COLCOUNT:1;&SETTINGS=COLCOUNT:3;
これらの設定は、カスタム・ウィジェットやカスタム・コントロールではサポートされません。
Zen ページへのダッシュボードの埋め込み
Zen ページにダッシュボードを埋め込む手順は以下のとおりです。
-
Zen ページ内に <iframe> 要素を配置します。
-
<iframe> 要素では、この章で前述した適切な URL パラメータと共に、src 属性を _DeepSee.UserPortal.DashboardViewer.zen に設定します。この値内では、すべてのアンド記号が & に置き換えられ、すべての左山括弧が < に置き換えられます。
以下はその例です。
XData Contents [XMLNamespace="http://www.intersystems.com/zen"] { <page xmlns="http://www.intersystems.com/zen" title=""> <iframe width="1000" height="800" src="_DeepSee.UserPortal.DashboardViewer.zen?DASHBOARD=Basic Dashboard Demo.dashboard" /> </page> }
別の例を示します。
XData Contents [XMLNamespace="http://www.intersystems.com/zen"] { <page xmlns="http://www.intersystems.com/zen" title=""> <iframe width="1000" height="800" src="_DeepSee.UserPortal.DashboardViewer.zen?DASHBOARD=Dashboards/Sample Meters B.dashboard&EMBED=1" /> </page> }
アプリケーションから他の DeepSee ページへのアクセス
アプリケーションで、アナライザやユーザ・ポータルなどの他の DeepSee Web ページへの直接リンクを提供することもできます。
DeepSee Web ページの URL は、以下のような一般的な構造になります。
http://localhost:57772/csp/samples/_Package.Class
localhost:57772 は Caché が実行しているサーバとポート、samples は DeepSee が実行しているネームスペース、_Package.Class はページを定義するクラスとパッケージの名前で、パッケージ名の先頭はパーセント記号ではなくアンダースコアにします。アナライザや他の DeepSee にアクセスすると、この URL がツールバーまたはブラウザに表示されます。
これらのページで、対応する任意の URL パラメータを使用できます。この章で前述の “使用可能な URL パラメータ” を参照してください。アナライザの URL を使用する際は、表示するピボット・テーブルを指定する PIVOT URL パラメータも指定できます。次に例を示します。
http://localhost:57772/csp/samples/_DeepSee.UI.Analyzer.zen?PIVOT=Pivot%20Features%2FConditional%20Formatting.pivot
アナライザの URL を使用する場合に、AUTOSAVE URL パラメータを指定する一方で PIVOT パラメータを指定しない場合は、アナライザには一番最近に表示されたアイテムが表示されます。
ダッシュボード・ビューワの場合と同様に、これらのページを Zen ページに埋め込むことができます。サブセクションに例を示します。
例 : Zen ページへのアナライザの埋め込み
以下の例は、DeepSee アナライザを <iframe> に埋め込む Zen ページ・クラスの XData ブロックを示しています。
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
<iframe width="1000" height="800"
src="_DeepSee.UI.Analyzer.zen?$NAMESPACE=SAMPLES&EMBED=1" />
</page>
}