基本的なディープ・リンクURLには、特定のStudioページへのパスが含まれます。このURLには、アプリケーション・データの状態を設定するためのパラメータ、およびタブ付きコンポーネント・コンテナに特定のタブを表示するためのパラメータが含まれる場合もあります。
http://<portalhost>:<port>/<pathtopage>
単純な構成の場合、そのパスはweb/<アプリケーションの簡易URL>/<内部ページ名>になります。
デフォルトでは、初期アプリケーション名から空白と特殊文字を削除した文字列が、アプリケーションの簡易URLになります。たとえば、Sales Discovery Dashboardというアプリケーションの簡易URLは、sales-discovery-dashboardになります。
アプリケーションの簡易URLは、アプリケーション構成ページから表示および編集できます。
次に例を示します。
http://localhost:8080/web/sales-discovery-dashboard/data-results
Studioに使用するロケールを指定するには、次のようにdoAsUserLanguageIdパラメータをURLに追加します。
http://localhost:8080/web/sales-discovery-dashboard/data-results?doAsUserLanguageId=<localeID>
<localeID>はロケールのJavaロケールIDです。たとえば、Studioを簡体字中国語で表示するには、次のように指定します。
http://localhost:8080/web/sales-discovery-dashboard/data-results?doAsUserLanguageId=zh_CN
http://<portalhost>:<port>/<pathtopage>?deeplink=[<dataSourceStates>]
<dataSourceStates>は、適用する対応フィルタを含むデータ・ソースです。
deeplink=[
{"<dataSourceId1>":
{
"queryFunctions": [<queryFunctionDefinitions>],
"navByValue": {
"<attribute1>":"<attributevalue1>",
"<attribute2>":["<attributevalue2>","<attributevalue2>","<attributevalue3>"]
}
}
}
]
ディープ・リンクURLでは、データ・ソースJSONによってサポートされる、DataSourceFilterやRefinementFilterなどの問合せファンクションがサポートされます。フィルタの構文の詳細は、「データ・ソースへのフィルタの追加」を参照してください。
次に例を示します。
"queryFunctions":[
{
"class":"DataSourceFilter",
"filterString":"Region='Sonoma'"
}
{
"class":"RangeFilter",
"property":"P_Price",
"rangeOperator":"BTWN",
"rangeType":"INTEGER",
"value1":"50",
"value2":"100"
},
{
"class":"RefinementFilter",
"attributeValue":"1997",
"attributeKey":"Vintage"
}]
また、SelectionFilterも使用できます。SelectionFilterでは、DataSourceFilterと同じ構文が使用されます。また、DataSourceFilterと同様、SelectionFilterは永久フィルタであり、Breadcrumbsコンポーネントには追加されません。次に例を示します。
"queryFunctions":[
{
"class":"SelectionFilter",
"filterString":"WineType='White'"
}]
ディープ・リンクURLでは、属性値に基づいてデータを絞り込むという点でRefinementFilterに似ている、navByValueフィルタもサポートされます。ただし、navByValueでは、属性キーではなく属性の表示名が使用されます。
次に例を示します。
"navByValue":{
"Wine Type":"Red",
"Region":"Other France",
"Body":["Fresh","Full","Rich","Ripe"]
ほとんどの場合、より高速で信頼性の高いRefinementFilterを使用する方が適しています。
navByValueを使用することが考えられる事例の1つは、管理対象属性値の属性キーがわからない場合です。たとえば、データ・ソースにState管理対象属性が含まれており、それらのState属性値をグループ化するために値(Northeast、South、MidwestおよびWest Coast)を追加して階層を作成した場合、値Northeastによるフィルタ処理を実行するために、navByValueを使用することが必要になる可能性があります。
リンクが使用されるときに、データ・ソースをデフォルトの状態にし、絞込みや検索も適用されないようにするには、そのデータ・ソースに空のフィルタを渡します。
http://<portalhost>:<port>/<pathtopage>?deeplink=[{"<datasourcename>":{}}]
移動先のページにタブ付きコンポーネント・コンテナが含まれる場合、ユーザーを特定のタブに移動するには、pageTransitionTabStateパラメータを使用します。
タブ付きコンポーネント・コンテナのタブが指定されたディープ・リンクURLの基本形式は、次のとおりです。
http://<portalhost>:<port>/<pathtopage>?com.endeca.discovery. pageTransitionTabState=<tabcomponentname>[<tabnumber>]&deeplink=[<dataSourceStates>]
たとえば、ChartTabsというコンポーネントの2番目のタブを表示する場合、pageTransitionTabStateの値は次のようになります。
pageTransitionTabState=ChartTabs[2]
多くのフィルタを含むディープ・リンクURLを作成する場合、アプリケーション・サーバーのリクエスト・サイズに関する制限に注意する必要があります。
エンコーディングによっても、元のリクエストのサイズは増加する場合があります。
たとえば、Tomcatの場合、リクエストHTTPヘッダーのデフォルトの最大サイズは8192です。
より長いURLをサポートする必要がある場合、アプリケーション・サーバーの関連設定を更新することが必要になる可能性があります。
アプリケーション・サーバーの制限に加え、Microsoft Internet Explorerが2083文字より長いURLを処理できないことにも注意してください。