Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

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.

Syntax:  

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änkungstypen
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.

CONSTRAIN vExampleText = {"type": "text"}
CONSTRAIN vExampleNumeric = {"type": "number"}
"maxnum" Legen Sie einen Höchstwert für eine Variable fest. Nur Zahlen (Ganzzahl oder Fließkomma). Wissenschaftliche Notation ist zulässig.
CONSTRAIN vExample = {"maxnum": 5000}
"minnum" Legen Sie einen Mindestwert für eine Variable fest. Nur Zahlen (Ganzzahl oder Fließkomma). Wissenschaftliche Notation ist zulässig.
CONSTRAIN vExample = {"minnum": 250}
"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]
CONSTRAIN vExample = {"valuesnum": [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"]
CONSTRAIN vExample = {"valuestext": ["Department A", "Department B", "Department C"]}

Wann Sie einen Constrain-Befehl verwenden sollten

Verwenden Sie den Constrain-Befehl, um zu verhindern, dass unerwünschte Variablenwerte in Analyse-Apps geladen werden. In den folgenden Abschnitten wird beschrieben, wie Sie ihn konkret einsetzen können.

Aktualisierung von Variablen zur Ladezeit

Constrain ist besonders nützlich, wenn Sie es in Kombination mit Aktualisierungen von Variablen zur Ladezeit verwenden. Mit Aktualisierungen von Variablen zur Ladezeit können Sie Variablen während der Ladevorgänge der App dynamisch aktualisieren, indem Sie die Eigenschaft variables der Reloads API verwenden. Der Constrain-Befehl verhindert, dass böswillige oder falsch formatierte Variablendefinitionen in Analyseladevorgänge aufgenommen werden.

Aktualisierungen von Variablen zur Ladezeit unterstützen zusammen mit dem Constrain-Befehl die folgenden Anwendungsfälle:

  • Vorlagen-Apps, die Daten selektiv auf der Grundlage von Bedingungen wie Kunden-ID oder Name laden (die zum Ladezeitpunkt als Variablen übergeben werden können)

  • Zentrale Kontrolle über Apps, die über viele Qlik Cloud Mandanten verteilt sind

  • Migration von variablen-orientierten Workflows und Aufgaben von QlikView und Qlik Sense clientverwaltet in die Cloud

Sicherheit, Zuverlässigkeit und Zusammenarbeit

Auch außerhalb von Szenarien mit Aktualisierung von Variablen zur Ladezeit verbessert Constrain die Sicherheitskontrollen für die Erstellung von Ladeskripten, z. B. bei der gemeinsamen Entwicklung von Ladeskripten. Ein App-Besitzer könnte zum Beispiel Beschränkungen für Variablenwerte definieren und die Mitarbeiter über bestimmte Bedingungen informieren, die erfüllt sein müssen, damit die App zuverlässig und erfolgreich geladen werden kann.

Ü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 App 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.

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, in der Arbeitsblatt-Ansicht oder über die Reloads-API – den Beschränkungen.

Um Variablenbeschränkungen über die öffentliche API zu definieren, verwenden Sie das Objekt GenericVariableConstraints in der Qlik Sense Engine (qix) API: GenericVariableConstraints.

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.

Beispiele: Mehrere Beschränkungen

Beispiel: Auflösen von Variablendefinitionskonflikten

Hat diese Seite Ihnen geholfen?

Wenn Sie ein Problem mit dieser Seite oder ihrem Inhalt feststellen, sei es ein Tippfehler, ein ausgelassener Schritt oder ein technischer Fehler, informieren Sie uns bitte!