Constrain | Windows 用 Qlik Sense ヘルプ
メイン コンテンツをスキップする 補完的コンテンツへスキップ

Constrain

Constrain ステートメントは、スクリプト変数を定義するために Let または Set ステートメントと組み合わせて使用できます。Constrain ステートメントを使用すると、これらの変数の取り得る値に制約を定義できます。変数定義が制約に違反すると、リロードは失敗します。制約を使用すると、変数の値が特定の型に一致し、特定の数値範囲内にあり、定義した許容値と一致することを要求できます。

構文:  

Constrain variablename = json

説明:

  • variablename はスクリプト変数です。

  • json は制約を指定する有効な JSON オブジェクトです。個々の制約は、キーと値のペアとしてこのオブジェクト内に追加されます。

制約タイプ
制約タイプ (キー) 意味 制約要件 (値)
"type" 変数の値を特定のデータ型に制限します。

"text" はテキスト タイプを指定します。

"number" は数値型を指定します。

CONSTRAIN vExampleText = {"type": "text"}
CONSTRAIN vExampleNumeric = {"type": "number"}
"maxnum" 変数の最大値を設定します。 数値のみ (整数または浮動小数点)。科学的記数法は許可されます。
CONSTRAIN vExample = {"maxnum": 5000}
"minnum" 変数の最小値を設定します。 数値のみ (整数または浮動小数点)。科学的記数法は許可されます。
CONSTRAIN vExample = {"minnum": 250}
"valuesnum" 変数に許容される数値のリストを定義します。 角括弧で囲まれた数値のカンマ区切りリスト。例: [1,2,3]
CONSTRAIN vExample = {"valuesnum": [1,2,3]}
"valuestext" 変数に許容されるテキストのリストを定義します。 角括弧で囲まれた文字列のカンマ区切りリスト。例: ["a","b","c"]
CONSTRAIN vExample = {"valuestext": ["Department A", "Department B", "Department C"]}

Constrain ステートメントを使用する場面

Constrain ステートメントを使用して、不要な変数値が分析アプリケーションに読み込まれるのを防ぎます。

考慮事項

  • 変数の Constrain 定義は有効な JSON オブジェクトである必要があります。

  • 1 つの変数に対して複数の制約を指定できます。変数のすべての制約は、単一の制約オブジェクト内に含める必要があります。例については、「例 - 複数の制約」を参照してください。

  • 特定の名前のスクリプト変数をすでにアプリケーションにロードしている場合、その変数の制約と値を定義しようとすると、元の変数と再定義された変数の競合により失敗する可能性があります。

    これらの競合を解決するには、空の定義を挿入して変数の制約と値をリセットします。例:

    CONSTRAIN x;
    LET x;
    
    CONSTRAIN x;
    SET x;

    その後、ロード スクリプトの後続のセクションで変数とその制約を再定義できます。長い形式の例については、 「例 - 変数定義の競合の解決」を参照してください。

  • 変数定義と制約定義の順序は重要ではありません。ただし、変数関連のリロードに失敗した場合、ブレークポイントが発生する行は異なります。

  • Constrain スクリプト ステートメントは、スクリプト変数の変数定義のみを制限します。パブリック API を使用して、スクリプト変数およびエンド ユーザー変数 (シート ビューで作成または更新される変数、または API を使用してセッション変数として作成または更新される変数) に制約を適用することもできます。詳細については、「変数制約を定義するための開発者の代替方法」を参照してください。

  • 変数のどの値とも一致しないシナリオを回避するために、制約が検証されます。無効な制約の例:

    • {"minnum": 5000, "maxnum": 4}
    • {"type": "text", "maxnum": 4}

変数制約を定義するための開発者の代替方法

ロード スクリプト内の Constrain ステートメントを使用する代わりに、パブリック API を使用して変数制約を定義することもできます。API を通じて制約を定義した場合、ロード スクリプトでの直接更新やシート表示での更新など、変数の値を更新するすべての操作が制約の対象となります。

パブリック API 経由で変数制約を定義するには、Qlik Engine JSON API: GenericVariableProperties (英語のみ)GenericVariableConstraints プロパティを使用します。

例 - type

例 - maxnum

例 - minnum

例 - valuesnum

例 - valuestext

例 - SETLET

これらの例は、変数定義中に SET または LET を使用する場合に制約が適用される方法の違いを示しています。すべての例では type 要件を適用する制約を使用していますが、これらの原則は一般にすべての制約タイプに適用されます。

例 - 複数の制約

例 - 変数定義の競合の解決

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。