ディープ・リンクURLの構文

基本的なディープ・リンクURLには、特定のStudioページへのパスが含まれます。このURLには、アプリケーション・データの状態を設定するためのパラメータ、およびタブ付きコンポーネント・コンテナに特定のタブを表示するためのパラメータが含まれる場合もあります。

基本的なディープ・リンクURLの形式

URLの通常の形式は、次のとおりです。
http://<portalhost>:<port>/<pathtopage>
詳細は次のとおりです。
  • <portalhost>はStudioサーバー名です。
  • <port>はStudioポートです。
  • <pathToPage>はStudioから特定のページへのパスです。

    単純な構成の場合、そのパスは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

deeplinkパラメータの追加によるデータソースの状態の設定

データの初期状態をディープ・リンクURLの一部として設定する場合、次のようにdeeplinkパラメータを追加します。
http://<portalhost>:<port>/<pathtopage>?deeplink=[<dataSourceStates>]

<dataSourceStates>は、適用する対応フィルタを含むデータ・ソースです。

deeplink=[
  {"<dataSourceId1>":
    {
      "queryFunctions": [<queryFunctionDefinitions>],
      "navByValue": {
        "<attribute1>":"<attributevalue1>",
        "<attribute2>":["<attributevalue2>","<attributevalue2>","<attributevalue3>"]
      }
    }
  }
]

ディープ・リンクURLでは、データ・ソースJSONによってサポートされる、DataSourceFilterRefinementFilterなどの問合せファンクションがサポートされます。フィルタの構文の詳細は、「データ・ソースへのフィルタの追加」を参照してください。

次に例を示します。

"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>]
詳細は次のとおりです。
  • <tabcomponentname>はコンポーネントの名前です。
  • <tabnumber>はタブの番号です。

たとえば、ChartTabsというコンポーネントの2番目のタブを表示する場合、pageTransitionTabStateの値は次のようになります。

pageTransitionTabState=ChartTabs[2]

ディープ・リンクURLの長さに関する注意事項

多くのフィルタを含むディープ・リンクURLを作成する場合、アプリケーション・サーバーのリクエスト・サイズに関する制限に注意する必要があります。

エンコーディングによっても、元のリクエストのサイズは増加する場合があります。

たとえば、Tomcatの場合、リクエストHTTPヘッダーのデフォルトの最大サイズは8192です。

より長いURLをサポートする必要がある場合、アプリケーション・サーバーの関連設定を更新することが必要になる可能性があります。

アプリケーション・サーバーの制限に加え、Microsoft Internet Explorerが2083文字より長いURLを処理できないことにも注意してください。