Olá, SenseUser!
Com o objetivo de trazer melhores análises, autonomia e um visual mais moderno, o Sense Analytics é um grande aliado da sua rotina. Nesse artigo, vamos conhecer um pouco mais sobre as expressões customizadas.
Expressões Customizadas são empregadas para realizar cálculos em:
- Cálculos de Tabela (Table Calculations);
- Campos Customizados;
- Filtros Customizados;
Uma Expressão Customizada é construída de uma combinação dos seguintes elementos:
- NULL: o Valor null representa um valor nulo, ou seja, a ausência de dados. É útil quando queremos garantir que algo existe ou não, como um valor de data, por exemplo.
- Constantes: uma constante é um valor determinado que não é alterado. Um valor como 7 ou uma string (cadeia de caracteres) como “Finalizado” são constantes.
- Campos: uma referência à um campo de uma consulta, que pode ser uma dimensão, uma medida ou um cálculo de tabela.
- Operadores: existem diversos tipos de operadores que podem ser empregados em expressões customizadas, e estão listados com mais detalhes no artigo Artigo: Funções para Expressões Customizadas:
- Operadores Matemáticos (como +, -, /, *)
- Operadores Comparativos (como >, <, =)
- Operadores Lógicos (como AND, OR ou NOT)
- Funções: estas permitem transformar ou referenciar dados de formas complexas. Todas as funções estão listadas no artigo Artigo: Funções para Expressões Customizadas.
Criando Expressões Customizadas
Cálculos de Tabela, Campos Customizados e Filtros Customizados podem ser construídos através do mesmo editor de expressões. Conforme a expressão for digitada, serão exibidas sugestões de funções, campos, operadores que você possa querer empregar.
O Editor de Expressões Customizadas por ser acessado ao criar um Cálculo de Tabela, Campo Customizado ou Filtro Customizado.
Vendo todas sugestões
Digitar uma barra de espaço exibirá a lista de todos os campos, funções e operadores que podem ser escolhidos. Campos que estão atualmente na consulta ficam marcados no topo com um círculo e aparecem no topo.
Continuar digitando irá limitar a lista de sugestões dinamicamente para as alternativas que possam ser interessantes no momento.
O Editor para campos customizados exibirá campos que estejam atualmente em uso somente se estes forem compatíveis com a função do campo customizado.
Adicionando um campo
Para incluir um campo na sua expressão, comece por digitar o nome do campo. Conforme digitar, serão exibidas sugestões de campos e funções que contêm o que foi digitado.
Quando for selecionado um campo da lista, ele será adicionado ao código na forma ${nome_da_view.nome_do_campo}, que é o formato interno do campo. Isso garante que todos campos tenham nomes únicos na expressão.
Adicionando Totais
Se a expressão que está criando for baseada em uma consulta onde estão sendo exibidos totais, também é possível adicionar os totais de linha e coluna na expressão. Totais de coluna aparecem no editor na forma ${nome_da_view.nome_do_campo:total}, enquanto totais de linha são exibidos na forma ${nome_da_view.nome_do_campo:row_total}.
No caso de medidas customizadas ou cálculos de tabela, eles são exibidos sem o nome da view, pois são campos únicos por natureza. Portanto, seus totais são exibidos no formato ${nome_do_campo:total} e ${nome_do_campo:row_total}.
Adicionando Operadores
É possível adicionar operadores lógicos às suas expressões caso necessário. Usualmente operadores AND são avaliados antes de operadores OR, mas este comportamento pode ser alterado empregando parênteses. Também podem ser utilizados operadores comparativos (como >, <, =, >=) e operadores matemáticos (como +, -, *).
Ao selecionar um operador no editor de expressões, o painel de ajuda exibirá detalhes sobre sua correta utilização.
Adicionando Funções
Para incluir uma função na expressão, basta digitar o nome da função. Conforme for digitado, o editor exibirá sugestões filtradas para os campos e funções que contêm o que foi digitado.
Funções podem ser construídas de argumentos (ou variáveis) que requerem um certo tipo como um campo, um número ou yes/no. Quando seu cursor estiver sobre uma função, o painel de ajuda à direita irá detalhar o funcionamento e a correta sintaxe da função.
Utilizando o painel de informações e sugestões de correção
Ao digitar uma expressão, o painel de ajuda à direita do editor exibirá dinamicamente informações sobre possíveis erros que forem detectados assim como dicas e detalhamento sobre funções, operadores e campos que estejam sendo empregados.
O painel provê:
- Destacamento de Erro: partes da expressões que ainda não estiverem corretas (parcialmente digitadas, erros de sintaxe ou digitação, etc.) são destacados com sublinhamento em vermelho;
- Sugestões e Detalhes de Erro: A parte ao topo do painel exibe sugestões sobre oque adicionar em seguida em sua expressão. Se há um erro, estará explicando o por que este erro está ocorrendo. Se existem vários erros, a exibição priorizará baseado na posição atual do cursor.
- Documentação: Na parte inferior do painel são exibidas informações sobre as funções ou operadores que estiverem sendo utilizados, baseados na posição do cursor.
Incluindo comentários
É possível incluir comentários nas expressões iniciando a linha de comentário com #. Isto pode ser útil para comunicação entre diferentes usuários que alterem as mesmas dashes.
Usando Campos
É comum que queiramos empregar os valores de campos (dimensões, medidas ou cálculos de tabela) em expressões.Podemos desejar somar o valor de um campo a outro valor, conferir se contém um certo valor, incluí-lo numa função, etc.
Como descrito acima (na seção “Adicionando um Campo”), digitamos o nome do campo no editor de expressões e as sugestões ajudarão a encontrar a forma correta de referenciá-la. Quando adicionamos um campo a uma expressão, é utilizada a forma interna do nome do campo, que possui o formato ${nome_da_view.nome_do_campo}. Este nome interno nem sempre corresponde ao nome visualizado na seleção de campos, mas não há problema: as sugestões exibidas no editor mostram tanto o nome da seleção quanto o nome interno, juntos.
Existem algumas diferentes formas que possamos desejar buscar um valor:
- Buscar valor da mesma linha: A forma mais básica de usar um campo é referenciá-lo diretamente. A expressão pode usar ${clientes.nome}, por exemplo. Desta forma, será interpretado como “Para cada linha, pegar o Nome do Cliente daquela linha”.
- Buscar valor de outra linha: É possível utilizar valores de um campo em outra linha, utilizando funções posicionais (mais informações em Artigo: Funções para Expressões Customizadas). Por exemplo, a expressão pode usar offset(${compras.valor), -1) para acessar o valor da linha acima.
- Buscar valor de coluna pivotada: Também é possível acessar valores de colunas pivotadas. Neste caso, são necessárias as funções de pivô (mais informações em Artigo: Funções para Expressões Customizadas).
- Buscar Totais de Linhas/Colunas: Se a sua consulta tem totais adicionados, é possível usar os valores dos totais de linha ou colunas adicionando :total (para totais de colunas) or :row_total (para totais de linhas) ao nome do campo, como ${compras.valor:total}, por exemplo.
Usando Operadores
Expressões Customizadas podem incluir operadores lógicos, comparativos ou matemáticos para gerar condições mais complexas caso necessário.
- Operadores Lógicos (como AND, OR e NOT)
- Operadores Comparativos (como > e <)
- Operadores Matemáticos (como + e /)
A menos que especificado através de parênteses, operadores lógicos do tipo AND são considerados antes de operadores OR. Por exemplo, a expressão a seguir sem parênteses:
if ( ${compras.valores) > 100 OR ${vendas.valores}< 50 AND ${clientes.primeracompra}, "Rever", "OK")
será avaliada como:
if ( ${compras.valores) > 100 OR (${vendas.valores}< 50 AND ${clientes.primeracompra}), "Rever", "OK")
Em Expressões Customizadas, devemos empregar yes e no ao invés de true ou false. É importante lembrar que estas são constante lógicas, e não são o mesmo que digitar “yes” ou “no”, com aspas, que são cadeias de caracteres (strings).
Usando Funções
Expressões Customizadas frequentemente empregam uma ou mais funções para obter, transformar ou calcular determinados valores.
Funções tomam a forma de um nome seguido por dois parênteses, como por exemplo: minha_função(). Muitas vezes é necessário fornecer informações extras para o correto funcionamento da função, dentro dos parênteses, separados por vírgulas. Estas informações extras são conhecidas como “argumentos”: minha_função(argumento1, argumento2).
Por exemplo, a função now() não requer nenhum argumento, e retorna a data e horário atuais.
A função round requer um argumento, neste caso, numérico, e retorna este valor arredondado para o inteiro mais próximo. Ele pode ser usado da seguinte forma: round(4,7), o que retornaria 5.
Há duas formas de descobrir se há argumentos necessários e quais são eles:
- O Painel de Informações à direita do Editor exibirá informações sobre a função que estiver selecionada.
- Também é possível navegar diretamente para Artigo: Funções para Expressões Customizadas e procurar a função que desejamos usar.
É possível também colocar funções dentro de funções, de forma que seus resultados sejam usados como argumentos, para executar lógicas mais complexas. Desde que as funções internas retornem valores apropriados para ser argumentos das funções externas, a expressão irá funcionar. Por exemplo:
contains(
if(
is_null(${clientes.feedback}),
${clientes.comentários},
${clientes.feedback}),
“ótimo”)
Nesta expressão, inserimos a função is_null dentro de uma função if, que está por sua vez dentro de uma função contains. Esta expressão funciona da seguinte forma:
- A função is_null confere se há dados no campo feedback.
- Em seguida, a função if utiliza este resultado e retorna o feedback caso ele não seja nulo, e retorna o comentário caso contrário.
- Finalmente, a função contains usa o texto retornado pela função if e busca pelo texto “ótimo” dentro dele.
Resumindo, esta expressão pode ser interpretada como: “Se existe feedback do cliente, busque por “ótimo” dentro dele. Caso não exista, busque no comentário do cliente.”
Restaram dúvidas? Entre em contato com o nosso time de Customer Experience através do canal de suporte - (suporte@sensedata.com.br).
Comentários
0 comentário
Por favor, entre para comentar.