Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Constrain

Instrukcja Constrain może być używana w połączeniu z instrukcjami Let lub Set do definiowania zmiennych skryptu. Instrukcja Constrain umożliwia zdefiniowanie ograniczeń możliwych wartości dla tych zmiennych. Jeśli definicja zmiennej naruszy ograniczenia, przeładowanie nie powiedzie się. Dzięki ograniczeniom można wymagać, aby wartości zmiennych były zgodne z określonymi typami, mieściły się w określonych zakresach liczbowych i były zgodne z dopuszczalnymi wartościami, które zostały zdefiniowane przez użytkownika.

Składnia:  

Constrain variablename = json

Gdzie:

  • variablename jest zmienną skryptu.

  • json jest prawidłowym obiektem JSON określającym ograniczenia. Poszczególne ograniczenia są dodawane do tego obiektu jako pary klucz-wartość.

Typy ograniczeń
Typ ograniczenia (klucz) Znaczenie Wymagania dotyczące ograniczeń (wartość) Przykłady
"type" Ograniczenie wartości zmiennej do określonego typu danych.

"text" określa typ tekstowy.

"number" określa typ liczbowy.

CONSTRAIN vExampleText = {"type": "text"}
CONSTRAIN vExampleNumeric = {"type": "number"}
"maxnum" Ustawienie maksymalnej wartości zmiennej. Tylko liczby (całkowite lub zmiennoprzecinkowe). Notacja naukowa jest dozwolona.
CONSTRAIN vExample = {"maxnum": 5000}
"minnum" Ustawienie minimalnej wartości zmiennej. Tylko liczby (całkowite lub zmiennoprzecinkowe). Notacja naukowa jest dozwolona.
CONSTRAIN vExample = {"minnum": 250}
"valuesnum" Określ listę dopuszczalnych wartości liczbowych dla zmiennej. Lista liczb oddzielonych przecinkami i ujętych w nawiasy kwadratowe. Na przykład: [1,2,3]
CONSTRAIN vExample = {"valuesnum": [1,2,3]}
"valuestext" Określ listę dopuszczalnych wartości tekstowych dla zmiennej. Lista ciągów oddzielonych przecinkami i ujętych w nawiasy kwadratowe. Na przykład: ["a","b","c"]
CONSTRAIN vExample = {"valuestext": ["Department A", "Department B", "Department C"]}

Kiedy używać instrukcji Constrain

Użyj instrukcji Constrain, aby zapobiec ładowaniu niepożądanych wartości zmiennych do aplikacji analitycznych. W kolejnych sekcjach opisano konkretne sposoby korzystania z niej.

Aktualizacja zmiennej podczas przeładowania

Instrukcja Constrain jest szczególnie przydatna w połączeniu z aktualizacjami zmiennych w czasie przeładowania. Dzięki aktualizacji zmiennych w czasie przeładowania można dynamicznie aktualizować zmienne podczas przeładowywania aplikacji, korzystając z właściwości variables w API Reloads. Instrukcja Constrain zapobiega włączaniu szkodliwych lub nieprawidłowo sformatowanych definicji zmiennych do przeładowań analitycznych.

Aktualizacje zmiennych czasu przeładowania, wraz z instrukcją Constrain, są obsługiwane w następujących zastosowaniach:

  • Szablonowe aplikacje, które ładują dane selektywnie w oparciu o warunki, takie jak identyfikator lub nazwa klienta (które mogą być przekazywane w czasie ładowania jako zmienne).

  • Centralna kontrola nad aplikacjami rozproszonymi w wielu dzierżawach Qlik Cloud

  • Migracja zmiennych przepływów pracy i zadań z QlikView i Qlik Sense zarządzany przez klienta do chmury

Bezpieczeństwo, niezawodność i współpraca

Nawet jeśli jest używana poza sytuacjami aktualizacji zmiennych podczas przeładowania, instrukcja Constrain zwiększa kontrolę bezpieczeństwa podczas tworzenia skryptów ładowania — na przykład podczas wspólnego tworzenia skryptów ładowania. Na przykład właściciel aplikacji może zdefiniować ograniczenia zmiennych wartości, informując współpracowników o konkretnych warunkach, które muszą zostać spełnione, aby aplikacja mogła zostać pomyślnie przeładowana.

Uwagi

  • Definicja zmiennej Constrain musi być prawidłowym obiektem JSON.

  • Dla jednej zmiennej można określić więcej niż jedno ograniczenie. Wszystkie ograniczenia dla zmiennej muszą być zawarte w pojedynczym obiekcie ograniczenia. Przykłady zawiera temat Przykłady — różne ograniczenia.

  • Jeśli zmienna skryptu o określonej nazwie została już załadowana do aplikacji, przyszłe próby zdefiniowania ograniczeń i wartości dla tej zmiennej mogą zakończyć się niepowodzeniem z powodu konfliktów między oryginalnymi i przedefiniowanymi zmiennymi.

    Aby rozwiązać te konflikty, należy zresetować ograniczenia i wartości zmiennej, wstawiając puste definicje. Przykłady:

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

    Następnie można ponownie zdefiniować zmienną i jej ograniczenia w kolejnych sekcjach skryptu ładowania. Przykład w dłuższej formie można znaleźć w temacie Przykład — Rozwiązywanie konfliktów definicji zmiennych.

  • Kolejność definicji zmiennej i definicji ograniczenia nie ma znaczenia. Jednak w przypadku niepowodzenia przeładowania związanego ze zmienną wiersz, w którym wystąpi punkt przerwania, będzie inny.

  • Instrukcja skryptu Constrain ogranicza definicje zmiennych tylko do zmiennych skryptu. Można również zastosować ograniczenia do zmiennych skryptu i użytkownika końcowego (tych utworzonych lub zaktualizowanych w widoku arkusza lub jako zmienne sesji za pomocą API) za pomocą publicznego API. Więcej informacji zawiera temat Alternatywne sposoby definiowania zmiennych ograniczeń dla deweloperów.

Alternatywne sposoby definiowania zmiennych ograniczeń dla deweloperów

Można również użyć publicznego API do zdefiniowania zmiennych ograniczeń, zamiast używać instrukcji Constrain w skrypcie ładowania. W przypadku zdefiniowania ograniczeń za pośrednictwem interfejsu API wszystkie próby aktualizacji wartości zmiennych — bezpośrednio w skrypcie ładowania, w widoku arkusza lub za pośrednictwem interfejsu API Reloads — będą podlegać ograniczeniom.

Aby zdefiniować ograniczenia zmiennych za pośrednictwem publicznego interfejsu API, należy użyć obiektu GenericVariableConstraints w interfejsie API Qlik Sense Engine (qix): GenericVariableConstraints.

Przykład — type

Przykład — maxnum

Przykład — minnum

Przykład — valuesnum

Przykład — valuestext

Przykłady — SET a LET

Przykłady te pokazują różnice między sposobem stosowania ograniczeń podczas używania SET lub LET do definiowania zmiennej. Wszystkie przykłady wykorzystują ograniczenia stosujące wymóg type, ale zasady te mają ogólne zastosowanie do wszystkich typów ograniczeń.

Przykłady — różne ograniczenia

Przykład — Rozwiązywanie konfliktów definicji zmiennych

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać!