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.
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ść.
| 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. |
|
| "maxnum" | Ustawienie maksymalnej wartości zmiennej. | Tylko liczby (całkowite lub zmiennoprzecinkowe). Notacja naukowa jest dozwolona. |
|
| "minnum" | Ustawienie minimalnej wartości zmiennej. | Tylko liczby (całkowite lub zmiennoprzecinkowe). Notacja naukowa jest dozwolona. |
|
| "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] |
|
| "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"] |
|
Kiedy używać Constrain instrukcji
Użyj instrukcji Constrain, aby zapobiec ładowaniu niepożądanych wartości zmiennych do aplikacji analitycznych.
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.
-
Ograniczenia są walidowane, aby uniknąć scenariuszy, które nie mogą dopasować żadnej wartości dla zmiennej. Przykłady nieprawidłowych ograniczeń:
-
{"minnum": 5000, "maxnum": 4}
-
{"type": "text", "maxnum": 4}
-
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 lub w widoku arkusza — będą podlegać ograniczeniom.
Aby zdefiniować ograniczenia zmiennych za pośrednictwem publicznego interfejsu API, należy użyć właściwości GenericVariableConstraints w interfejsie API QlikEngine JSON: GenericVariableProperties (tylko w języku angielskim).
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ń.
