OBIEE – Utilizando prompt oculto para popular variáveis

Share Button

Introdução:

Séries de tempo são indispensáveis para análise de negócio, faz parte da base da metodologia de Business Intelligence.
Metaforicamente falando, podemos dizer que BI se resume em olhar para trás buscando experiências vividas para auxiliar nas respostas de perguntas que temos hoje.
Mas muitas vezes apenas uma dimensão de tempo é insuficiente para se obter a janela que precisamos, na maioria das vezes em que desenvolvi relatórios e painéis de análises encontrei desafios como:
Regra de Negócios X Apresentação Padrão dos Dados X Modelo X Comportamento da Ferramenta X Layout, onde o resultado exige a perfeita harmonia entre todos esses fatores.
A seguir, trouxe mais um de meus pequenos cases, espero que possa auxiliá-los também, boa leitura!

Desafio:

Nesse caso, nosso cenário abrange um painel de despesa, com duas páginas, uma para análise total e outra para análise detalhada (mensal).

  • Página 1 Despesa Total:
    O requisito desta página solicita analisar o valor da despesa realizada na série de tempo, comparando o ano selecionado pelo prompt com os dois últimos anos, possibilitando visualizações Semestral, ou Trimestral ou Temporal. Disponibilizando o resultado para análise em tabela e gráfico de linhas.

    Observe abaixo que a visualização tanto da tabela quanto do gráfico devem se comportar correspondentemente ao tipo de visão temporal selecionada ao prompt.

  • Página 2 Despesa Detalhada:
    O requisito desta página solicita analisar o valor da despesa realizada detalhada por região, comparando valor da despesa no o mês selecionado com o mês anterior ao selecionado. Disponibilizando o resultado para análise em tabela e gráfico de barras e linha, onde a barra corresponde ao mês atual e a linha ao mês anterior.


    Mais uma particularidade desta página são os cabeçalhos da tabela e as legendas do gráfico que devem mudar correspondente ao ano e mês selecionados no prompt.

 

Soluções Aplicadas:

Como os valores das medidas de despesa, são filtrados por série de tempos diferentes, também algumas legendas e cabeçalhos são dinâmicos e ambos devem se comportar de formas correspondentes aos filtros selecionados no prompt, iremos adotar variáveis de apresentação como estratégia para se alcançar os resultados esperados.

  • Comportamento das Variáveis: Conceituando o relacionamento da variável com os objetos da página, temos a linha de raciocínio onde uma vez que inserimos uma coluna da dimensão no prompt e associamos a ela uma variável de apresentação, ela passa a criar um valor que irá alimentar os filtros e parâmetros indexados nos relatórios das páginas.

 

 

 

 

 

 

Neste case, o cenário muda um pouco, por se tratar de comparativos de períodos atuais com períodos anteriores. Para resolver essa particularidade, utilizei um prompt oculto no painel, onde os objetos passam a se relacionar da seguinte forma:

 

 

 

 

 

 

  • Criando os objetos do Painel: Vamos criar os objetos que serão utilizados em nossa primeira página do painel:

1 – Prompt do Painel: Este é o mais simples de ser elaborado, o campo “Ano” é um prompt de coluna que vem da dimensão de tempo e o campo “Visão Temporal” um prompt de variável conforme a imagem abaixo:

2 – Variáveis: Iremos trabalhar com as variáveis de apresentação “vAno” e “vTempo” construindo-as da seguinte forma:

Indexamos ao filtro de “Ano” a variável “vAno”:

 

    Para o campo da “Visão Temporal” a seguinte configuração, associando a variável “vTempo” ao campo:

3 – Prompt Oculto: Agora iremos criar um novo objeto de prompt, que receberá as variáveis (vAno e vTempo) criadas anteriormente no Prompt de Painel. Este prompt requer algumas configurações específicas nas quais estarei exemplificando a seguir:

4 – Variável (criada pelo prompt oculto): Como podem ver, este prompt oculto possuirá dois campos, um para nos trazer o valor do ano selecionado no prompt de painel -1 onde chamamos de variável “vAno_1” e outro para trazer o mesmo valor -2 que chamamos de “vAno_2”:

 

5 – Relatório: Como exemplificado no diagrama, o relatório receberá as variáveis populadas pelos prompts da seguinte forma:

 

 

Na primeira coluna da dimensão tempo, utilizaremos a variável “vTempo” com a função abaixo. Isso determinará o nosso eixo horizontal do gráfico que deve se comportar de acordo com o botão de rádio selecionado no prompt de painel.

 

Para as colunas de medidas, utilizaremos a função Filter que será aplicado em cada uma das medidas especificadas, sendo filtradas de acordo com a variável correspondente:

 

Após a construção da análise, basta trazer as colunas para as views desejadas conforme a regra de negócios especifica, observe que neste caso, utilizamos as variáveis de ano também nos labels (cabeçalhos) das colunas, que serão por sua vez populados somente depois que receberem o valor da variável, ou seja, quando estiverem em uma página de painel juntamente com os prompts que criamos anteriormente.

Agora iremos criar os objetos que serão utilizados em nossa segunda página do painel:

1 – Prompt do Painel: Este prompt utiliza dois campos “Ano” e “Mês” da Dimensão de Tempo, onde os configurei da seguinte forma:

 

2 – Variável: Os campos utilizados no prompt que acabamos de criar são indexados às variáveis de apresentação “vAno” e “vMes”:

 

3 – Prompt Oculto: Este prompt requer algumas configurações específicas para funcionar como o componente.

No campo “C” utilizamos query a seguir como valor default para apresentação, observe que a mesma utiliza como referência dados trazidos das variáveis “vAno” e “vMes”:

No campo “D” utilizamos query a seguir como valor default para apresentação, neste caso, nossa referência vem da variável produzida no campo anterior “C”:

E por último no campo “E” utilizamos query a seguir como valor default para apresentação, este campo utiliza a variável criada no prompt de painel:

 

4 – Variável (criada pelo prompt oculto): Com os campos do prompt oculto criados, temos um cenário onde o campo “C” nos trás o valor do ano e mês (yyyymm) onde o mês corresponde ao mês anterior ao selecionado no prompt de painel e o indexamos a variável “vAnoMes_1”, o campo “D” nos trás o nome do mês (Janeiro) correspondente ao mês anterior ao selecionado no prompt de painel e o indexamos a variável “vMes_1” e por último o campo “E” nos trás o ano correspondente ao ano anterior (2013) selecionado no prompt de painel e o indexamos a variável “vAno_1”:

 

5 – Relatório: A lógica aplicada nas variáveis do prompt oculto será a base de calculo das nossas métricas desenvolvidas no relatório a seguir:

Na nossa primeira coluna trouxe apenas o campo da Dimensão de Região. Para nossa segunda coluna de medida, utilizei a seguinte função para trazer o valor da despesa correspondente ao ano e mês selecionados no prompt de painel:

E por fim em nossa última coluna de medida, para trazer os dados de valor da despesa correspondentes ao mês anterior do ano selecionados no prompt de painel apliquei a função:

Após o desenvolvimento dos critérios de nosso relatório, basta criar as views de acordo com a regra de negócio especificada:

Observe que para esse relatório também utilizei as variáveis nos labels (cabeçalhos) das medidas como referência.

 

  • Criando o Painel de Apresentação: Agora que temos todos os objetos criados, iremos disponibilizá-los nas suas respectivas páginas de dashboards (painel). Ao criarmos o painel, precisamos trazer para página os três objetos que irão se relacionar com as variáveis (Prompt de Painel, Prompt Oculto e Relatório):

 

Faça isso para as duas páginas do painel salve e visualize. Note que no item 1 o prompt oculto recebe os valores conforme as variáveis do prompt de painel, e no item 2 os labels das medidas também recebem o valor da variável de acordo com sua indexação html.

 

  • Veja o Resultado Final: Conseguimos chegar a uma solução em relação à disposição dos dados, porém o prompt oculto deve assumir de fato sua função como componente de painel. Para que isso aconteça, basta editar o painel, e configurar a propriedade da Sessão onde está localizado o prompt oculto, inserindo uma classe CSS:

     

Realize essa configuração na sessão de todas as páginas onde utiliza o objeto de prompt oculto e observe que o mesmo não irá aparecer na visualização do objeto final, solucionado nosso desafio:

Carina Mendes.