E você, sabe como criar e usar KPI no SSAS 2012?

KPI Fala galera, um recurso altamente utilizado por tomadores de decisão de negócios (ou termo em inglês Business Decision Makers) para analisar quantitativamente os resultados são os KPIs (Key Performance Indicator [Indicadores Chave de Performance]). Basicamente são indicadores (ou ponteiros) que mostram o resultado de forma gráfica, seguindo um padrão universal de cores, como um semáforo, passando por Vermelho, Amarelo e Verde. Hoje em dia é possível colocar mais variações dentro de um KPI, tendo análises com 5 ou até mais “intervalos de resultados”. Isso surgiu pelo fato de um resultado dividido apenas em 3 valores representar uma análise simplista do acontecimento. A idéia deste post é mostrar diretamente no SQL Server Analysis Services como fazer um KPI com 3 intervalos, mas se precisar de mais, o SQL Server Reporting Services faz isso sem nenhuma dificuldade.

Para exemplificar este processo de criação e uso do KPI, vamos trabalhar com o banco AdventureWorksDW2012 que já é uma base de exemplo completa, vamos aproveitar o calculo que fizemos para apresentar a Margem de Lucro de um produto. Para ver este calculo, acesse este link.

Seguindo a mesma linha do exemplo do Calculo, precisamos abrir o cubo (.cube) e acessar a aba KPIs que fica ao lado do Calculations.

image

Dentro desta aba, é possível encontrar 3 áreas úteis, sendo duas laterais e uma central. Todas são importantes e nos ajudarão nesta criação. A primeira que vamos utiliziar é a área superior da lateral esquerda, chamada KPI Organizer. Nesta área é onde se solicita criar um novo KPI, e ficam listados todos os KPIs criados neste projeto. Clique com o botão direito do mouse nesta área e aponte para New KPI.

image

Neste momento, repare na área central se transformando e contextualmente habilitando diversos campos para nós trabalharmos. Precisamos preencher alguns campos. O primeiro dele é o campo Name. Reparem que desta vez não colocamos entre colchetes, simplesmente informamos o nome, que pode inclusive ser o mesmo, não vai gerar conflito.

image

Na sequência é o campo Associated Measure Group, neste caso, deve-se informar em qual measure group seus campos estão e este KPI ficará associado. No meu caso, só temho o “Calculo de Vendas” então o seleciono na combobox.

image

O campo seguinte é o Value Expression. Este campo deve receber um valor (arrastando da measure e soltando no campo, o valor é preenchido). Depois do campo preenchido com o calculo que fizemos no outro artigo, este valor poderá ser “chamado” de dentro de outros campos através da função KpiValue. Vamos usar isso mais pra frente.

O valor do campo ficou:

[Measures].[Margem Lucro]

image

O próximo campo é o Goal Expression, que também pode receber um valor. Neste caso, estou atribuindo “pesos” para cada categoria de produto. Reparem que estou retornando o membro [Categoria do Produto] da dimensão [Produto]. Com essa atribuição de pesos, posso chamar este campo através da função KpiGoal. Também vamos ver isso um pouco à frente. O código que coloquei neste campo foi:

 

Case
    When [Produto].[Categoria do Produto].CurrentMember Is
    [Produto].[Categoria do Produto].[Accessories] Then .40

    When [Produto].[Categoria do Produto].CurrentMember Is
    [Produto].[Categoria do Produto].[Bikes] Then .12

    When [Produto].[Categoria do Produto].CurrentMember Is
    [Produto].[Categoria do Produto].[Clothing] Then .20

    When [Produto].[Categoria do Produto].CurrentMember Is
    [Produto].[Categoria do Produto].[Components] Then .10
 Else .12
End

 

image

O campo seguinte é o Status Indicator, que é a representação gráfica que sua informação irá apresentar, quando for plotada no relatório. Normalmente são os Shapes, que ficam numa representação de semáforo, mas você pode utilizar outros como bandeiras, setas, cilindros, faces (rostinhos), etc.

image

Este campo acima está atrelado diretamente à este aqui, que é o Status Expression. Este campo é a expressão que irá resultar em seu resultado ser o vermelho, amarelo ou verde. Para isso, o vermelho é o valor de –1, o amarelo é o valor de 0 e o verde é o valor de +1. Veja o código para gerar este valor:

Case
    When KpiValue( "Margem Lucro" ) /
         KpiGoal ( "Margem Lucro" ) >= .90
    Then 1
    When KpiValue( "Margem Lucro" ) /
         KpiGoal ( "Margem Lucro" ) <  .90
         And
         KpiValue( "Margem Lucro" ) /
         KpiGoal ( "Margem Lucro" ) >= .80
    Then 0
    Else -1
End

Reparem que neste código as duas funções que comentei a pouco são chamadas, tanto a KpiValue quanto a KpiGoal, o parametro passado pra elas é o nome do KPI que você quer usar no calculo. Reparem que passei o próprio KPI que estamos criando aqui.

image

Rolando a tela um pouco pra baixo, é possível ver mais alguma coisas. Neste caso, é possível ver a tendência do resultado, que é apontado dentro do campo Trend Indicator e Trend Expression.

No campo Trend Indicator o mais usado são as setas, já que elas apontam para cima se for um crescimento (+1), apontam para a direita se for mantido (0) e apontam para baixo (-1) se a tentência é para diminuir.

image

O código MDX que deve-se escrever para a tendência também deve seguir a mesma lógica da Expressão, com resultados entre –1, 0 ou +1. Deixei manualmente valor –1 para forçar que a tendência desta análise seja negativa, e a setinha seja mostrada para baixo. Fica uma sugestão pra vocês, mudem o valor entre esses –1, 0 e +1 e vejam o resultado da tendência.

Pronto, o KPI está criado e agora é o momento de analisar o resultado com ele. Para isso, precisa-se processar o cubo novamente. Façam o processamento e então conseguirão ver os resultados do KPI dentro da sua análise.

Caso queira testar o KPI antes de enviar para seus diretores, clique no ícone Browser View e o resultado será mostrado… Para voltar à visualização anterior, clique em Form View logo à esquerda do Browser View.

image

Agora é com vocês, fechem sempre os resultados no verde e deixem seus gerentes e diretores felizes!

Sobre Diego Nogare 347 Artigos
Diego Nogare é Gerente Técnico de Engenharia de Machine Learning no Itaú-Unibanco. Também é professor em programas de pós graduação no Mackenzie e na FIAP, em São Paulo. Foi nomeado como Microsoft MVP por 11 anos seguidos, e hoje faz parte do programa Microsoft Regional Director.