Trabalhando com variáveis no editor de carregamento de dados

Uma variável no Qlik Sense é um contêiner armazenando um valor estático ou um cálculo como, por exemplo, um valor numérico ou alfanumérico. Ao usar a variável no aplicativo, qualquer mudança feita será aplicada em qualquer lugar em que a variável for usada. Você pode definir variáveis na visão geral de variáveis ou no script, usando o editor de carregamento de dados. Você define o valor de uma variável usando os comandos Let ou Set no script de carregamento de dados.

Dica: Você também pode trabalhar com as variáveis do Qlik Sense na visão geral de variáveis quando editar uma pasta. Usando variáveis em expressões

Visão geral

Se o primeiro caractere do valor de uma variável for um sinal de igual ' = ', o Qlik Sense tentará avaliar o valor como uma fórmula (expressão Qlik Sense) e, em seguida, exibir ou retornar o resultado, em vez do texto real da fórmula.

Quando utilizada, a variável é substituída por seu valor. As variáveis podem ser usadas no script para a expansão de macros e em diversos comandos de controle. Isso é muito útil quando a mesma string é repetida várias vezes no script, por exemplo um caminho.

Algumas variáveis especiais do sistema serão definidas pelo Qlik Sense no início da execução do script, independentemente de seus valores anteriores.

Definindo uma variável

Ao definir uma variável, a sintaxe:

set variablename = string

ou

let variable = expression

é usada. O comando Set atribui o texto à direita do sinal de igual à variável e o comando Let avalia a expressão.

As variáveis diferenciam maiúsculas de minúsculas.

Nota: No Qlik Sense, não é recomendado dar a uma variável o nome de um campo ou função.

Examples:  

set HidePrefix = $ ; // a variável considerará o caractere ‘$’ como um valor.

let vToday = Num(Today()); // retorna o número serial da data de hoje.

Excluindo uma variável

Se você remover uma variável do script e recarregar os dados, a variável permanecerá no aplicativo. Se quiser remover por completo a variável do aplicativo, também deverá excluir a variável da visão geral de variáveis.

Para obter mais informações, consulte Excluindo uma variável.

Carregando um valor de variável como um valor de campo

Se você quiser carregar um valor de variável como um valor de campo em um comando LOAD e o resultado da expansão de dólar for texto em vez de numérico ou uma expressão, você precisa colocar a variável expandida entre aspas simples.

Example:  

Este exemplo carrega a variável do sistema contendo a lista de erros de script para uma tabela. Você pode observar que a expansão do ScriptErrorCount na cláusula If não exige aspas, embora a expansão de ScriptErrorList exija.

IF $(ScriptErrorCount) >= 1 THEN
LOAD '$(ScriptErrorList)' AS Error AutoGenerate 1; END IF

Cálculo da variável

Existem várias maneiras de usar variáveis com valores calculados no Qlik Sense, e o resultado depende de como você as define e as chama em uma expressão.

Neste exemplo, carregamos alguns dados inline:

LOAD * INLINE [ Dim, Sales A, 150 A, 200 B, 240 B, 230 C, 410 C, 330 ];

Vamos definir duas variáveis:

Let vSales = 'Sum(Sales)' ;
Let vSales2 = '=Sum(Sales)' ;

Na segunda variável, adicionamos um sinal de igual antes da expressão. Assim, a variável será calculada antes de ser expandida e a expressão será avaliada.

Se você usar a variável vSales como está, por exemplo, em uma medida, o resultado será a string Sum(Sales), ou seja, nenhum cálculo será realizado.

Se você adicionar uma expansão de sinal de dólar e chamar $(vSales) na expressão, a variável será expandida e a soma de Sales, exibida.

Por fim, se você chamar $(vSales2), a variável será calculada antes de ser expandida. Isso significa que o resultado exibido é a soma total de Sales. A diferença entre usar =$(vSales) e =$(vSales2) como expressões de medida é observado neste gráfico que mostra os resultados:

Resultados
Dim $(vSales) $(vSales2)
A 350 1560
B 470 1560
C 740 1560

Como você pode ver, $(vSales) resulta na soma parcial para um valor de dimensão e $(vSales2) resulta na soma total.