Constrain
A instrução Constrain pode ser usada em combinação com as instruções Let ou Set para definir variáveis de script. A instrução Constrain permite que você defina restrições sobre os valores possíveis para essas variáveis. Se a definição de uma variável violar as restrições, o recarregamento falhará. Com as restrições, você pode exigir que os valores variáveis correspondam a tipos específicos, estejam dentro de intervalos numéricos específicos e correspondam a valores aceitáveis definidos por você.
Constrain variablename = json
Em que:
-
variablename é uma variável de script.
-
json é um objeto JSON válido que especifica as restrições. As restrições individuais são adicionadas a esse objeto como pares de valores-chave.
| Tipo de restrição (chave) | Significado | Requisitos de restrição (valor) | Exemplos |
|---|---|---|---|
| "type" | Restringir valores de variável a um tipo de dados específico. |
"text" especifica um tipo de texto. "number" especifica um tipo numérico. |
|
| "maxnum" | Defina um valor máximo para uma variável. | Somente números (inteiros ou de ponto flutuante). É permitida notação científica. |
|
| "minnum" | Defina um valor mínimo para uma variável. | Somente números (inteiros ou de ponto flutuante). É permitida notação científica. |
|
| "valuesnum" | Defina uma lista de valores numéricos aceitáveis para a variável. | Lista de números separados por vírgula, entre colchetes. Por exemplo: [1,2,3] |
|
| "valuestext" | Defina uma lista de valores de texto aceitáveis para a variável. | Lista de strings separadas por vírgulas, entre colchetes. Por exemplo: ["a","b","c"] |
|
Quando usar uma Constrain instrução
Use a instrução Constrain para evitar que valores variáveis indesejados sejam carregados nos aplicativos de análise.
Considerações
-
A definição de Constrain para a variável deve ser um objeto JSON válido.
-
Você pode especificar mais de uma restrição para uma única variável. Todas as restrições de uma variável precisam estar contidas em um único objeto de restrição. Para ver exemplos, consulte Exemplos - Múltiplas restrições.
-
Se você já carregou uma variável de script com um determinado nome no aplicativo, tentativas futuras de definir restrições e valores para essa variável podem falhar devido a conflitos entre a variável original e a redefinida.
Para resolver esses conflitos, redefina as restrições e os valores da variável inserindo definições em branco. Exemplos:
CONSTRAIN x; LET x;CONSTRAIN x; SET x;Você pode então redefinir a variável e suas restrições nas seções subsequentes do script de carregamento. Para um exemplo mais longo, consulte Exemplo - Resolvendo conflitos de definição de variável.
-
A ordem da definição de variável e da restrição não importa. No entanto, em caso de falha de recarregamento relacionada à variável, a linha na qual o ponto de interrupção ocorre será diferente.
-
A instrução de script Constrain restringe apenas as definições de variáveis para variáveis de script. Você também pode aplicar restrições em variáveis de script e de usuário final (aquelas criadas ou atualizadas na visualização de pasta ou como variáveis de sessão usando a API) usando a API pública. Para obter mais informações, consulte Alternativas do desenvolvedor para definir restrições de variáveis.
-
Restrições são validadas para evitar cenários que não podem corresponder a nenhum valor para a variável. Exemplos de restrições inválidas:
-
{"minnum": 5000, "maxnum": 4}
-
{"type": "text", "maxnum": 4}
-
Alternativas do desenvolvedor para definir restrições de variáveis
Você também pode usar a API pública para definir restrições de variáveis, em vez de usar a instrução Constrain no script de carregamento. Ao definir restrições via API, todas as tentativas de atualizar valores de variáveis —seja diretamente no script de carregamento ou na exibição de pasta— estarão sujeitas às restrições.
Para definir restrições de variáveis por meio da API pública, use a propriedade GenericVariableConstraints na API QlikEngine JSON: GenericVariableProperties (somente em inglês).
Exemplo - type
Exemplo - maxnum
Exemplo - minnum
Exemplo - valuesnum
Exemplo - valuestext
Exemplos - SET versus LET
Esses exemplos mostram as diferenças entre como as restrições são aplicadas ao usar SET ou LET durante a definição de variável. Todos os exemplos usam restrições que aplicam um requisito type, mas esses princípios se aplicam a todos os tipos de restrições em geral.
Exemplos - Múltiplas restrições
Exemplo - Resolvendo conflitos de definição de variável
Trabalhando com variáveis no editor de carregamento de dados
