Skip to content

URLからの指定

外部でリンクを作成するときに、URL へパラメータを付けると、既存のパラメータ値を上書きできます。

対象機能

次の機能で URL からパラメータを指定できます。これらの機能では、パラメータを変更するたびに URL が更新され、URL を共有するとパラメータ値も共有できます。

  • ノートブックのバージョン
  • レポート
    • 対象は インタラクティブレポート です
    • 自動実行 を有効にしている場合、URL 指定のパラメータをマージしたあとに自動実行されます
    • パラメータのデフォルト値を使用 を有効にしている場合でも、URL で指定したパラメータが優先されます(いったんデフォルトへリセットしたあと、URL 指定が反映されます)

指定方法

パラメータは URL の cdm.params クエリパラメータと同期します。形式は次のとおりです。

typescript
// ページ遷移後も保持するため、ページ ID ごとにパラメータを持つ
type Params = { [pageId: string]: { [paramId: string]: string } };

// 各値は JSON.stringify した文字列を指定する
// pageId / paramId は実際には 68783eb9c4b4b71483a1d617 のような ID
const params: Params = {
  page1: {
    param1: JSON.stringify('value1'),
    param2: JSON.stringify(123),
  },
  page2: {
    param3: JSON.stringify(true),
    param4: JSON.stringify(['value1', 'value2']),
  },
};

const query = `?cdm.params=${encodeURIComponent(JSON.stringify(params))}`;

ショートカット形式

cdm.params を直接組み立てにくい場合は、cdm.params.${paramId} 形式でも指定できます。両方ある場合は cdm.params.${paramId} が優先され、マージされた新しい cdm.params が URL に反映されます。

typescript
const paramId = 'param1';
// ショートカット形式では JSON.stringify は不要(encodeURIComponent は必要)
const value = 'string_value';

const query = `?cdm.params.${paramId}=${encodeURIComponent(value)}`;

// 空文字を指定すると、そのパラメータを空の状態にできる
const queryEmpty = `?cdm.params.${paramId}=`;

値の指定方法

パラメータの種類ごとの指定方法は次のとおりです。ショートカット形式では JSON.stringify は不要ですが、URL へ載せる際の encodeURIComponent は必要です。

種類cdm.params での指定ショートカット形式
テキスト入力 / テキスト選択JSON.stringify("string_value")string_value
テキスト複数入力 / テキスト複数選択JSON.stringify(["item1", "item2"])item1,item2
数値入力 / 数値選択JSON.stringify(123)123
日付入力JSON.stringify("2025-01-01")2025-01-01
日付範囲JSON.stringify(["2025-01-01", "2025-01-02"])2025-01-01,2025-01-02
チェックボックスJSON.stringify(true) または JSON.stringify(false)true または false
  • 配列型は、ショートカット形式では , 区切りで指定します
  • 日付入力・日付範囲は YYYY-MM-DD 形式で指定します
  • 無効な値が指定された場合はエラー画面になります