> For the complete documentation index, see [llms.txt](https://wedocs.gitbook.io/wedocs-5.1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wedocs.gitbook.io/wedocs-5.1/cliente-desktop/recursos-extras-de-dashboards/variaveis/variaveis-dinamica.md).

# Variáveis dinâmica

#### Variáveis dinâmicas <a href="#variaveis-dinamicas" id="variaveis-dinamicas"></a>

* Foi implementado um novo sistema de variáveis de contexto, que podem ser criadas dinamicamente durante a execução de comandos SQL. Essas variáveis têm a capacidade de ter seus valores alterados a cada execução do SQL, permitindo maior flexibilidade e adaptabilidade no processamento dos dados.

Na tela de variáveis de contexto de um usuário foi adicionado um botão Variáveis dinâmicas:

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2FVgS5LgzFChjn5TGe3h14%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=c395d8a1\&sv=2)

Clicar neste botão abre a tela de Variáveis de contexto dinâmicas:

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2FdVI8suBeWATc9D71kwLV%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=2bf4ffa9\&sv=2)

Nesta tela o usuário poderá gerenciar as variáveis de contexto dinâmicas de um usuário. Para adicionar uma, ele deve clicar no botão Adicionar (+). Isso abrirá a tela de edição de variável dinâmica:

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2FlUqo9YjOAapW2WYNWJAO%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=7048a70f\&sv=2)

Para adicionar a variável de contexto dinâmica, o usuário deve, obrigatoriamente, escolher uma conexão, informar um código SQL e testá-lo (ou executá-lo) com sucesso.

Um único SQL pode gerar mais de uma variável pois cada coluna pode gerar uma variável distinta. Se o SQL retornar mais de uma linha, as variáveis geradas serão listas de valores onde cada linha representará um valor.

Uma vez testado com sucesso, ele poderá configurar as Variáveis de contexto resultantes na aba de mesmo nome.

A lista da esquerda apresenta as variáveis que serão criadas pelo SQL. Cada coluna do SQL, representa uma variável.

Clicar em uma destas variáveis permite a configuração desta variável:

O campo Campo representa o nome do campo/coluna do SQL resultante. Ele não pode ser editado pelo usuário.

O campo Ativo permite que o usuário desative/ignore determinadas colunas do SQL resultante.

O campo Variável representa o nome da variável resultante (caso deseje-se que seja diferente do nome da coluna). Note-se que o nome da variável deve seguir os padrões de nomenclatura de variáveis de contexto e deve ser único dentro da definição.

O campo Quantidade permite determinar se o resultado é uma lista ou um valor simples.

O modo Desconhecido age de forma automática: se um único (ou nenhum) valor for obtido, a variável será considerada como um valor simples. Se mais de um valor for obtido, a variável será considerada como uma lista. Esse modo se aplicará (e é recomendado) para a maior parte dos casos mas podem haver alguns onde seja necessário especificar se trata-se de uma lista ou não.

O modo Lista de valores considera que o valor é uma lista mesmo que retorne apenas um valor (ou mesmo nenhum).

O modo Valor único considera que é um valor simples mesmo que retorne mais de um valor. Se necessário, os valores adicionais são ignorados.

O campo Ignorar valores nulos, se marcado, determina que os valores nulos retornados pelo SQL sejam ignorados. Isso pode ser especialmente útil para SQL’s que retornem diversas variáveis e diversas linhas.

O campo Ignorar valores repetidos, se marcado, determina que os valores retornados sejam únicos. Note-se que, nesta situação, o sistema pode distorcer a ordem dos valores retornados por performance na checagem. Se a ordem for importante, este campo não deve ser marcado e a unicidade deve ser responsabilidade do SQL.

O campo Separador permite definir um ou mais caracteres para dividir o valor resultante em uma lista de valores.

O campo Amostra exibe, com base no resultado do teste do SQL e das configurações da variável, o(s) provável(is) valor(es) desta variável.

Na aba Resultado (sem formatação) ele poderá, caso necessário, visualizar o resultado do SQL.

Este SQL pode dispor de parâmetros de entrada para a aplicação de filtros.

Estes parâmetros, por sua vez, podem dispor de variáveis de contexto globais e do próprio usuário.

Para editar uma variável de contexto dinâmica já criada, ele deve selecionar uma e clicar duas vezes sobre ela.

O botão Editar (\*) abre um menu flutuante conforme imagem abaixo:

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2FYYTnLCVJHXiy9hVS7Bxw%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=67673a00\&sv=2)

A opção Editar abre a edição da variável de contexto dinâmica.

A opção Aplicar a todos os Usuários torna a variável global. Ou seja, ela é aplicada à todos os usuários. Isso pode ser útil para casos onde o mesmo SQL pode ser reaplicado para todos os usuários.

Contudo, pode-se desejar que uma determinada variável global não seja aplicada à determinado usuário. Isso pode ser obtido através da opção Desativar para este usuário.

O botão Excluir (-) permite a exclusão da variável selecionada. Note-se que qualquer variável pode ser excluída, inclusive as globais. Nessa situação, um alerta será exibido questionando o usuário.

O botão Excluir todas (x) permite a exclusão de todas as variáveis listadas. Note-se que isso excluirá até mesmo as variáveis globais. Nessa situação, um alerta será exibido questionando o usuário.

O botão Ações (...) abre um menu flutuante conforme imagem abaixo:

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2FZfxsE7UVEC9TiCbfyg3A%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=4ca09266\&sv=2)

A opção Ver as variáveis atualmente geradas abre uma tela exibindo as variáveis dinâmicas que foram geradas para o usuário.

Note-se que as variáveis são geradas apenas depois que o Gerenciador de Tarefas processar as variáveis dinâmicas criadas.

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2F3hvrevtwWf7ZNIAf8m5O%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=9f89519b\&sv=2)

As outras opções permitem forçar a atualização imediata das variáveis de um ou de todos os usuários, respectivamente.

Note-se que estas opções apenas colocarão a geração na lista do Gerenciador de Tarefas, que é o real responsável pela geração.

Na listagem das variáveis:

* A coluna Código representa o identificador interno da variável (meramente ilustrativo).
* A coluna Situação indica se a variável é global e se está ativa:
* Ativo: Não é global. Aplica-se apenas ao usuário atual.
* Global ativo: Aplica-se à todos1 os usuários, inclusive o atual.
* Global inativo: Aplica-se à todos1 os usuários mas não se aplica ao atual.
* A coluna Variáveis exibe o nome das variáveis que são geradas.

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2FTdg639vySfVfDdGfub0r%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=31e438a4\&sv=2)

Quando uma variável for gerada por mais de uma variável de contexto dinâmica, um alerta será exibido. Essa prática não será impedida. Primeiro que seria complexo para limitar. Segundo que podem haver situações normais em que isso vai acontecer. Note-se que variáveis globais inativas não contribuem para este aviso.

Exemplo: na imagem abaixo, a variável cor é gerada duas vezes:

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2F3w2BxaJBioFwxsXYoj2E%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=13cde63\&sv=2)

Precedência:

Se existir uma variável de contexto estática com o mesmo nome de uma variável de contexto dinâmica, a variável estática terá prioridade.

Entre duas variáveis de contexto dinâmicas, as variáveis específicas de um usuário terão prioridade perante as globais.

Por fim, será utilizado o ID da variável. Variáveis mais “recentes” (com ID maior) terão prioridade.

Uma vez que a variável dinâmica for definida, o Gerenciador de Tarefas fará a sua geração.

Um serviço específico foi criado: Atualização das variáveis dinâmicas

É possível especificar até 8 processos paralelos para este serviço.

A atualização automática é realizada uma vez a cada 24 horas (não configurável).

Este tempo é independente para cada usuário.

O Painel de controle possui um espaço específico para que o usuário gerencie a situação das gerações.

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2FAO5m021nzzZigO4018UT%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=4f8de7b7\&sv=2)

Clicar duas vezes em um registro, abre o log de execuções das variáveis do usuário.

Clicar com o botão direito abre um menu flutuante que permite a edição das variáveis daquele usuário e a execução imediata.

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2FuQrQhCQAfvsHVMK2nWqj%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=19e59f92\&sv=2)

Quando o usuário for criar, por exemplo, um campo calculado, ele verá as variáveis de contexto que já foram geradas pelo Gerenciador de Tarefas:

![](https://wedocs.gitbook.io/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FAfAhPDXlTYhkof518Jan%2Fblobs%2FiCrFoXAfonUMsKIWeIF8%2Fimage.png\&width=768\&dpr=4\&quality=100\&sign=7caf8678\&sv=2)

Exportação:

* Variáveis de contexto dinâmicas são exportadas/importadas junto ao usuário qual pertencem.
* Variáveis de contexto dinâmicas globais são exportadas/importadas junto com as variáveis de contexto globais se a devida opção estiver selecionada.
