Constrain
Der Constrain-Befehl kann in Kombination mit den Let- oder Set-Befehlen verwendet werden, um Skript-Variablen zu definieren. Mit dem Constrain-Befehl können Sie Beschränkungen für mögliche Werte dieser Variablen definieren. Wenn eine Variablendefinition gegen die Beschränkungen verstößt, schlägt der Ladevorgang fehl. Mit Beschränkungen können Sie festlegen, dass Variablenwerte bestimmten Typen entsprechen, in bestimmte numerische Bereiche fallen und mit von Ihnen definierten akzeptablen Werten übereinstimmen müssen.
Constrain variablename = json
Hierbei gilt:
-
variablename ist eine Skriptvariable.
-
json ist ein gültiges JSON-Objekt, das die Beschränkungen angibt. Einzelne Beschränkungen werden in diesem Objekt als Schlüssel-Wert-Paare hinzugefügt.
| Beschränkungstyp (Schlüssel) | Bedeutung | Beschränkungsanforderungen (Wert) | Beispiele |
|---|---|---|---|
| "type" | Beschränken Sie Variablenwerte auf einen bestimmten Datentyp. |
"text" gibt einen Texttyp an. "number" gibt einen numerischen Typ an. |
|
| "maxnum" | Legen Sie einen Höchstwert für eine Variable fest. | Nur Zahlen (Ganzzahl oder Fließkomma). Wissenschaftliche Notation ist zulässig. |
|
| "minnum" | Legen Sie einen Mindestwert für eine Variable fest. | Nur Zahlen (Ganzzahl oder Fließkomma). Wissenschaftliche Notation ist zulässig. |
|
| "valuesnum" | Definieren Sie eine Liste der akzeptablen numerischen Werte für die Variable. | Kommagetrennte Liste von Zahlen, die in eckigen Klammern stehen. Zum Beispiel: [1,2,3] |
|
| "valuestext" | Definieren Sie eine Liste der akzeptablen Textwerte für die Variable. | Kommagetrennte Liste von Strings, die in eckigen Klammern stehen. Zum Beispiel: ["a","b","c"] |
|
Wann eine Constrain Anweisung verwendet wird
Verwenden Sie den Constrain-Befehl, um zu verhindern, dass unerwünschte Variablenwerte in Analyseanwendungen geladen werden.
Überlegungen
-
Die Constrain-Definition für die Variable muss ein gültiges JSON-Objekt sein.
-
Sie können mehr als eine Beschränkung für eine einzelne Variable angeben. Alle Beschränkungen für eine Variable müssen in einem einzigen Beschränkungsobjekt enthalten sein. Beispiele finden Sie unter Beispiele: Mehrere Beschränkungen.
-
Wenn Sie bereits eine Skriptvariable mit einem bestimmten Namen in die Anwendung geladen haben, können zukünftige Versuche, Beschränkungen und Werte für diese Variable zu definieren, aufgrund von Konflikten zwischen den ursprünglichen und den neu definierten Variablen fehlschlagen.
Um diese Konflikte zu lösen, setzen Sie die Variablenbeschränkungen und -werte zurück, indem Sie leere Definitionen einfügen. Beispiele:
CONSTRAIN x; LET x;CONSTRAIN x; SET x;In den nachfolgenden Abschnitten des Ladeskripts können Sie dann die Variable und ihre Beschränkungen neu definieren. Ein Beispiel in Langform finden Sie unter Beispiel: Auflösen von Variablendefinitionskonflikten.
-
Die Reihenfolge der Variablendefinition und der Beschränkungsdefinition spielt keine Rolle. Im Falle eines variablenbedingten Ladefehlers ist die Zeile, in der der Bruchpunkt auftritt, jedoch eine andere.
-
Der Constrain-Skriptbefehl schränkt nur die Variablendefinitionen für Skriptvariablen ein. Sie können auch Beschränkungen auf Skript- und Endbenutzervariablen anwenden (die in der Arbeitsblatt-Ansicht oder als Sitzungsvariablen über die API erstellt oder aktualisiert wurden), indem Sie die öffentliche API verwenden. Weitere Informationen finden Sie unter Alternativen für Entwickler zum Definieren von Variablenbeschränkungen.
-
Beschränkungen werden validiert, um Szenarien zu vermeiden, die keinem Wert für die Variable entsprechen können. Beispiele für ungültige Beschränkungen:
-
{"minnum": 5000, "maxnum": 4}
-
{"type": "text", "maxnum": 4}
-
Alternativen für Entwickler zum Definieren von Variablenbeschränkungen
Sie können auch die öffentliche API verwenden, um Variablenbeschränkungen zu definieren, anstatt den Constrain-Befehl im Ladeskript zu verwenden. Bei der Definition von Beschränkungen über die API unterliegen alle Versuche, Variablenwerte zu aktualisieren – ob direkt im Ladeskript oder in der Arbeitsblatt-Ansicht – den Beschränkungen.
Um Variablenbeschränkungen über die öffentliche API zu definieren, verwenden Sie die GenericVariableConstraints Eigenschaft in der QlikEngine JSON API: GenericVariableProperties (nur auf Englisch).
Beispiel - type
Beispiel - maxnum
Beispiel - minnum
Beispiel - valuesnum
Beispiel - valuestext
Beispiele: SET im Vergleich zu LET
Diese Beispiele zeigen die Unterschiede in der Anwendung von Beschränkungen bei der Verwendung von SET oder LET während der Variablendefinition. In allen Beispielen werden Beschränkungen verwendet, die eine type-Anforderung anwenden, aber diese Prinzipien gelten generell für alle Arten von Beschränkungen.
