Auto Refresh – SSRS KPIs

Dentro do Reporting Services 2016 foi adicionado um recurso herdado do Microsoft Datazen que é bastante útil e querido por todos que tenho visto usando a nova plataforma de relatórios: os KPIs.

Bom, um “problema” que recentemente descobri após o questionamento de um cliente em um projeto foi o fato de, diferente do Datazen, os KPIs do SSRS não estavam tendo os dados atualizados automaticamente quando o dado era alterado dentro da origem. Somente se o Data Set fosse atualizado que a alteração de dados era refletida na interface gráfica do Key Performance Indicator no painel do Reporting Services.

Ao realizar uma análise sobre o “Erro”, percebi que, na verdade, isso é algo By Default do recurso. Para que seja possível o auto update, é necessário que antes seja configurado ao Data Set um recurso denominado de Cache Refresh Plan. Abaixo você aprenderá como realizar a configuração.


Para os testes estou usando uma instancia de SQL Server 2016. O banco de dados será o AdventureWorksDW2014. Para que possamos iniciar os testes, crie primeiramente dois Data Sets usando as queryes abaixo (subentende-se que você tem o domínio para efetuar a criação desses objetos):

-- Para criação do Data Set denominado KPI 1
SELECT [Value],
 [Goal],
 CASE WHEN [Value] > [Goal]
 THEN 1 
 WHEN [Value] < [Goal]
 THEN -1
 ELSE 0 END [Status]
FROM (
 SELECT SUM(CASE WHEN dst.SalesTerritoryCountry = 'Germany' 
 THEN CONVERT(INT,f.UnitPrice) 
 ELSE 0 END) AS [Value],
 SUM(CASE WHEN dst.SalesTerritoryCountry = 'Canada' 
 THEN CONVERT(INT,f.UnitPrice) 
 ELSE 0 END) AS [Goal]
 FROM FactInternetSales f 
 JOIN DimProduct dp ON dp.ProductKey = f.ProductKey 
 JOIN DimCustomer dc ON dc.CustomerKey = f.CustomerKey 
 JOIN DimSalesTerritory dst ON dst.SalesTerritoryKey = f.SalesTerritoryKey 
 JOIN DimDate dod ON dod.DateKey = f.OrderDateKey
 AND dod.EnglishMonthName = 'January'
 AND dod.DayNumberOfMonth = 31
) AS Query_KPI

-- Para criação do Data Set denominado KPI 2
SELECT SUM(Germany) - SUM(Canada) [TrendSet]
FROM (
 SELECT TOP 1000000
 dod.DayNumberOfMonth AS Dia,
 CASE WHEN dst.SalesTerritoryCountry = 'Germany' 
 THEN SUM(CONVERT(INT,f.UnitPrice)) 
 ELSE 0 END AS Germany,
 CASE WHEN dst.SalesTerritoryCountry = 'Canada'
 THEN SUM(CONVERT(INT,f.UnitPrice)) 
 ELSE 0 END AS Canada
 FROM FactInternetSales f 
 JOIN DimProduct dp ON dp.ProductKey = f.ProductKey 
 JOIN DimCustomer dc ON dc.CustomerKey = f.CustomerKey 
 JOIN DimSalesTerritory dst ON dst.SalesTerritoryKey = f.SalesTerritoryKey 
 JOIN DimDate dod ON dod.DateKey = f.OrderDateKey
 WHERE dst.SalesTerritoryCountry IN ('Germany','Canada')
 AND dod.EnglishMonthName = 'January'
 GROUP BY dod.DayNumberOfMonth, 
 dst.SalesTerritoryCountry
 ORDER BY dod.DayNumberOfMonth
) TrendSet
GROUP BY Dia

Feito isso, crie um KPI usando os dados dos dois Data Sets criados no passo anterior, seguindo o preenchimento dos campos de acordo com a imagem abaixo:

Ok. Feito isso, é necessário agora que, através do script abaixo, você altere os dados da tabela de Fato de vendas na internet da base de dados do Adventure Works para que seja possível realizarmos a configuração de auto refresh do SSRS.

BEGIN TRANSACTION
GO

UPDATE f
SET UnitPrice = 1008.99
FROM FactInternetSales AS f
JOIN DimProduct dp ON dp.ProductKey = f.ProductKey 
 JOIN DimCustomer dc ON dc.CustomerKey = f.CustomerKey 
 JOIN DimSalesTerritory dst ON dst.SalesTerritoryKey = f.SalesTerritoryKey 
 JOIN DimDate dod ON dod.DateKey = f.OrderDateKey
 AND dod.EnglishMonthName = 'January'
 AND dod.DayNumberOfMonth = 31
WHERE dst.SalesTerritoryCountry = 'Canada'
 AND UnitPrice = 8.99
GO

COMMIT TRANSACTION
GO

Observe agora que mesmo realizando refreshs na pagina os dados do KPI criado não tem as informações alteradas na apresentação. Para que isso seja possível, será necessário realizar uma configuração de auto refresh nos Data Sets que foram criados.

Primeiramente, vá até a pasta de nome DATASETS (criada automaticamente no deploy de projeto através do SSDT) e selecione o primeiro objeto (KPI 1). Na janela de configuração que irá abrir selecione no canto esquerdo a aba Caching.

Feito isso, Selecione a opção Cache copies of this dataset and use them when available. Isso irá fazer com o que o Reporting Services armazene de tempos em tempos um cache dos dados na memória do server.

É possível configurar uma ou mais agendas no servidor do SSRS para ser usada em um ou mais Data Sets, porém, para efeitos de testes, você irá configurar 1 minuto na primeira opção conforme a imagem abaixo:

Uma nova opção abaixo é habilitada: Cache Refresh Plan. Clique em Manage refresh plan e, na nova nova janela de configuração, selecione a opção New cache refresh Plan.

Na nova janela, adicione uma descrição e após isso selecione a opção Edit schedule.

Agora você irá configurar a frequência de refresh. Selecione a opção Hour. Em Run the schedule every marque de 1 em 1 minuto e o início para a hora atual da configuração.

Agora, quando a página anterior for mostrada novamente, selecione Create cache refresh plan. Feito isso, Após um minuto da configuração, será possível realizar um refresh na pagina inicial e verificar um novo valor do KPI na pagina inicial do Reporting Services.

Um ponto importante sobre o auto refresh é que a instância em que o serviço do SSRS está funcionando precisa ter o Agent habilitado e em funcionamento pois, para realização do Auto Refresh, o SSRS usa um job do Agent.


Espero poder ajudar!

Datazen Beginning – Parte 12

Este é o último post da Série Datazen Beginning. Nesta etapa você aprenderá sobre algumas funções administrativas do Microsoft Datazen.


Backup 

Ao se conectar no Painel de Controle do Datazen Enterprise Server como Admin, na Aba Backup será possível realizar a cópia de segurança de duas formas:

  1. Avulsa – Backup realizado sobre demanda conforme a necessidade e armazenado em um diretório escolhido.

01

            2. Agendada – Backup realizado de maneira agendada. Dessa maneira ele                   será realizado sempre conforme o range informado.

02


Restore

O backup que foi realizado não é formado por somente um arquivo, mas sim por um conjunto de arquivos e diretórios.

03

Infelizmente, não é possível realizar graficamente o restore do backup executado. Para isso, você precisará executar via cmd um conjunto de comandos.

Primeiramente, conecte no cmd como Administrador;

Após isso, pare a execução do serviço do Datazen com o seguinte comando:

net stop datazen

Navegue até o diretório do Core Services. Use o comando abaixo caso tenha feito a instalação no diretório padrão:

cd "c:\Program Files\Datazen Enterprise Server\service"

Delete a pasta denominada Data que guarda as informações do Core Services. Use o seguinte comando:

rmdir /S /Q Data

Recrie o diretório Data (ele estará limpo):

mkdir Data

Agora realize o restore usando o seguinte comando:

Raven.Server.exe -restore -src <Diretório do Backup> -dest Data

Espere pela mensagem “Esent Restore: Restore Complete“. Após isso, reinicie o serviço do Datazen com o comando abaixo:

net start datazen

Manutenção do Repositório do Core Services

Caso o número de objetos dentro do Datazen Core Services diminua com o tempo de uso da ferramenta (Exclusão de usuários, eliminação de Dashboards e KPIs, mudança de Data view Personalizado para não personalizado) o repositório pode ficar “fragmentado” – Realizando uma analogia ao que conhecemos como fragmentação de índices dentro do SQL Server.

Para resolver esse problema, é necessário que um comando de compactação seja realizado (Semelhante ao Reorganize do SQL Server).

Primeiramente, conecte no cmd como Administrador;

Após isso, pare a execução do serviço do Datazen com o seguinte comando:

net stop datazen

Navegue até o diretório do Core Services. Use o comando abaixo caso tenha feito a instalação no diretório padrão:

cd "c:\Program Files\Datazen Enterprise Server\service"

Agora, execute o comando abaixo para realizar a compactação do repositório do Core Services:

esentutl /d Data\Data

Espere a operação concluir e após isso, reinicie o serviço do Datazen com o comando abaixo:

net start datazen

Reset Index

Em raras ocasiões, é possível que os índices do Datazen Core Service estejam danificado ou não-responsivos, levando a erros.

É possível, então, resolver a esse problema com o reset dos índices do Core Services.

Falei sobre este tópico no post Datazen Tip’s – Parte 1 como resolução de um erro que encontrei na criação de usuários.

Primeiramente, conecte no cmd como Administrador;

Após isso, execute o seguinte comando para parar a o servidor do Datazen.

net stop datazen

Feito isso, navegue até a pasta onde o Datazen Core Service está instalado (o comando abaixo está apontando para a pasta padrão de instalação).

cd "c:\Program Files\Datazen Enterprise Server\service"

Após isso execute o comando abaixo que faz o reset de todos os índices do Core Services.

Datazen.Server.Service.exe /console /resetindexes /shutdown

Agora reinicie o servidor do Datazen com comando abaixo.

net start datazen

Com este post, a Série Datazen Beginning está finalizada. Espero que vocês possam aproveitar ao máximo da Ferramenta que é, simplesmente, fantástica.

Datazen Beginning – Parte 11

Neste post da série Datazen Beginning você irá aprender sobre a Adminitração de segurança de Dashboard, Data Sources, KPIs e Painel de Atividades dentro do Painel de Administração do Datazen Server.


No post anterior da série – Parte 10 – você aprendeu como criar e publicar Deshboards usando o Datazen Publisher e na Parte 6 você aprendeu sobre a construção de KPIs dentro do Painel de Administração do Datazen Server.

Nesta etapa você entenderá como funcionam as opções e níveis de segurança dentro do Microsoft Datazen.


Primeiramente é necessário que você compreenda os níveis de segurança dentro da ferramenta. Observe a imagem abaixo:

01

É possível que um Usuário – ou Grupo de Usuários – do Core Services tenha acesso, dentro de cada Hub, a:

Um ou mais grupos de Dashboards:

02

Um ou mais Dashboards expecíficos (independente do grupo do qual faça parte):

03

Um ou mais grupos de KPIs:

04

Um ou mais Data Connections:

05

Painel de Atividades dos Dashboards e KPIs:

06


Agora vamos ver como administrar permissões a Dashboards, KPIs, Data Connections e Painel de Atividades dentro do Painel de Administração do Datazen Server.

Acesse o Control Painel como Admin, crie um novo usuário na aba Server Users e defina a senha para ele através do link que será gerado – Para mais informações, acesso a Parte 4 do conjunto de posts.

É possível que um usuário do Datazen Server tenha acesso a um ou mais Hubs em três níveis apenas um nível por Hub:

  1. Somente visualização – Essa permissão é concedida quando o usuário é adicionado ao Hub;
  2. Publisher – Com essa permissão o usuário pode criar e publicar Dashboads dentro do Hub. Ela é concedida marcando o Check box Publisher quando dado o acesso ao usuário dentro do Hub;
  3. Owner – Com esse nível de permissionamento o usuário poderá acessar o painel de Controle do Hub, criar KPIs, dar ou retirar acesso de outros usuários, excluir objetos, etc.

Observação – O nível de permissão Owner do Hub só poderá ser concedido pelo Administrador do Datazen pois isso somente é possível editando o Hub.

Agora acesse a aba Users das opções de configuração do Hub Adventure Works. Adicione o usuário que acabou de criar ao Hub e marque o check box Publisher.

Observação 2 – Caso você queira retirar o acesso de um usuário a um Hub basta, dentro da aba Users, Clicar no botão de exclusão do canto direito do registro desse usuário específico. Mas isso somente será possível se ele não for um dos Owners do Hub. Se for, você precisará antes retirar a permissão de Owner desse User.

Entendido isso, o funcionamento do controle de permissões de usuários dentro da ferramenta é bastante simples.

Você pode criar grupos de usuários na aba User Groups dentro de cada Hub e adicionar os usuários que já fazem parte do Hub dentro desses grupos. Dessa maneira, poderá atribuir permissões de forma macro.

07

Na aba Permissions será possível você perceber as quatro possibilidades de permissionamento que citei acima.

08

É possível que você conceda permissão a nível de Grupo de Dashboard ou a nível de Dashboard mudando a seleção Dashboards & Dashboard Groups. É possível também conceder essa permissão a nível de usuário ou de grupo de usuários mudando a seleção Set permissions for:.

Em Data Sources e KPIs funciona de forma semelhante que na aba Dashboards, exceto pelo fato de que não é possível dar permissão a um objeto de nível inferior a Grupo de KPIs ou Data Connections.

Ou seja, caso você queira que um usuário acesse somente um KPIs ou um Data View específico, terá de criar um grupo de KPIs ou um Data Connection específico para ele.

Outro ponto interessante a ser observado com relação à segurança do Datazen é o o painel de atividades. É possível que os usuários interajam através dos aplicativos Datazen Viewer discutindo e dando opinião acerca dos dados apresentados em casa um dos objetos do Datazen Server (Dashboards e KPIs).

10

Os acesso podem ser concedidos a um usuário específico ou grupo de usuários de três maneiras:

  1. No Access – O usuário não terá acesso a nenhuma das informações do painel de atividades;
  2. Read Only – O usuário poderá somente ler os comentários do painel de atividades;
  3. Full Access – O usuário poderá interagir com os demais usuários, não somente lendo, mas também comentando dentro do Painel.

09


O próximo post será o ultimo da série Datazen Beginning. Nele você aprenderá sobre algumas funções administrativas do Datazen Enterprise Server.

SQL Maniacs – Entendendo o Datazen

Pessoal, tive a honra de ser convidado pelo Vitor Fava – responsável pelo grupo SQL Maniacs – para realizar uma apresentação sobre o Microsoft Datazen

Segue abaixo o ppt da apresentação.

Captura de Tela 2015-10-22 às 01.20.51

Dentre os assuntos que já tenho falado (arquitetura, instalação, configuração criação de data sources e data views e criação e publicação de dashboards e KPIs) falei também sobre algumas atividades administrativas da ferramenta, como por exemplo o backup e restore e reset index

Agradeço de todo coração ao Vitor pela oportunidade de continuar expondo conteúdos para a comunidade ajudando, dessa forma, a quem está começando, assim como eu também já fui ajudado. 

Segue abaixo o link dos dois videos – Parte 1 e Parte 2 da apresentação.

Report Services 2016 / Datazen Beginning – Parte 7

Neste post da série você irá conhecer a ferramenta responsável por criar e publicar Dashboards dentro do Datazen Server, o Datazen Publisher.


Como você pode observar na Parte 5 e Parte 6 do conjunto de posts, a criação de Data Sources, Data Views e KPIs é realizada dentro do Painel de Administração do Datazen Server. Porém, para que seja possível efetuar a criação de Dashboads você precisará usar uma ferramenta externa. O Datazen Publisher.

A instalação e configuração dessa ferramenta foi realizada na Parte 2 e Parte 3 do conjunto de posts.

Acesse a ferramenta Datazen Publisher e você precisará preencher as informações relacionadas ao Server do Datazen em que irá se conectar.

Captura de Tela 2015-10-12 às 06.09.32

  1. Server Address deverá ser configurada com o servidor em que o Datazen Server foi instalado. No conjunto de posts, Tanto o Datazen Server quanto o Datazen Publisher foram configurados na mesma maquina. Por isso preencha com localhost.
  2. Em Username e Password preencha respectivamente o login e senha do usuário que foi criado e que é owner do Hub que foi criado.
  3. O checkbox Use Security Connection deve ficar desmarcado. Essa opção só é usada quando o Datazen Server usa certificado para conexão segura.
  4. O checkbox Sync All Data deve ficar habilitado. Ele é responsável por fazer um refresh nos dados.

Ao se conectar, você poderá ver os KPIs que já foram criados na Parte 6. Clique com o botão direito do mouse dentro do Publisher e você poderá ver as opções disponíveis.

Captura de Tela 2015-10-12 às 06.18.41

As opções relevantes aqui serão Create, Connected e ManageEm Connected será possível ver a conexão ao Datazen Server atual e também se conectar a uma outra instancia com outro Server se necessário.

Captura de Tela 2015-10-12 às 06.21.40

Em Manage você terá acesso a algumas opções de configuração de Dashboards e KPIs.

Captura de Tela 2015-10-12 às 06.20.59

  1. Em KPIs & Dashoboars será possível Criar ou alterar Grupos de Dashboards.
  2. Em Background Data Sync será possível configurar o Serviço de Data Cache do Dashboard e KPI.
  3. Em Application Branding será possível alterar a as configurações gráficas do Datazen. Existem algumas que vem por Default. Mas é possível que você crie seu próprio Branding e o disponibilize através do painel de Administração.
  4.  Em Work Folder será possível criar ou alterar a pasta de trabalho local do Datazen Publisher. Os Dashboards que forem criados e salvos localmente ficaram dentro dessa pasta de trabalho.
  5. Em PIN Lock será possível configurar uma senha de quatro dígitos numéricos que sempre será solicitada ao iniciar ou ao iniciar e acessar o Publisher.
  6. Em Privacy Settings você poderá configurar a as propriedades de privacidade do uso aos dados.

Ao acessar a opção Create você terá acesso à tela que define se você criará um Dashboard do zero ou criará um Deshboard a partir de um outro já existente.

Obs – Se selecionada a opção de criar um painel derivado de outro, o dashboard selecionado não será sobre escrito. Ele será copiado.

Captura de Tela 2015-10-12 às 06.37.25

Selecione a opção Start from an empty dashboard. Feito isso você irá se deparar com a tela de criação de Dashboards dentro do Datazen Publisher.


Temos muito o que falar do Datazen Publisher. É necessário que você entenda bem como manusear a ferramenta antes de começar a criar e publicar Dashboards. portanto, vamos por partes. Vamos iniciar pelos 4 painéis de configuração.

Layout View – Será nesse painel que você irá desenvolver o designer do dashboard. Em outras palavras, será aqui que você perderá um pouco de tempo com o usuário final entendendo como ele quer que seus dados sejam apresentados.

Captura de Tela 2015-10-12 às 06.41.46 2

Data View – Nesse painel você irá conectar os dados dos data views criados no painel de administração aos componentes gráficos selecionados no painel Layout View.

Captura de Tela 2015-10-12 às 06.49.03

Dashboard Settings – Nesse painel será possível definir as configurações do Dashboard que está sendo desenvolvido tanto localmente quanto para o Server quando esse painel for publicado.

Captura de Tela 2015-10-12 às 06.51.23

 Run Preview – Nesse painel é possível ver, em tempo de desenvolvimento, como está o dashboard que está sendo criado.

Captura de Tela 2015-10-12 às 06.53.31


Ao clicar com o botão direito do mouse em qualquer uma das abas de desenvolvimento do Datazen Publisher você terá as seguintes opções:

Captura de Tela 2015-10-12 às 06.55.00

  1. Em Home você será redirecionado para a pagina inicial do Datazen Publisher;
  2. Em New Dashboard você poderá criar um novo painel;
  3. Em Save Locally será possível salvar o dashoboard que está sendo desenvolvido localmente na pasta de trabalho (Work Folder);
  4. Em Publish to Server será possível salvar dentro do Datazen Server o Dashboard que foi desenvolvido. Feito isso, todos os dispositivos moveis e web que tiverem acesso à esse servidor poderão ter acesso a esse Dashboard.

Nos próximos post da série você irá começar a criar Dashboards. Falaremos sobre os tempos de execução dos Dashboards (Dashboards Runtime). Também veremos mais sobre cada uma das possibilidades de criação dentro do Publisher e cada componente de desenvolvimento dentro do painel Layout View.

 

Datazen Beginning – Parte 6

Neste post da série você aprenderá a criar e administrar KPIs dentro do Painel de Administração do Microsoft Datazen.


KPIs – Key Performance Indicator ou, em português Indicadores de desempenho (como é conhecido) são usados para demonstrar de forma quantitativa quão longe ou perto certa área de uma instituição está para atingir sua meta ou valor com relação a determinado assunto.

Os KPIs são desenvolvidos dentro do Painel de Administração do Microsoft Datazen e consumidos tanto pela aplicação Datazen Viewer nos dispositivos móveis quanto em qualquer computador através de qualquer browser que tenha acesso ao server.


Conecte no painel de controle do Datazen Server e acesse a aba KPIs do Hub Analise de Vendas que você criou na parte 4 da série de posts.

Captura de Tela 2015-10-05 às 21.17.12

No canto superior direito crie um novo grupo de KPIs. Uma nova aba será aberta e você poderá criar a conexão com a fonte de dados para aquele grupo de KPIs (Caso tenha alguma dúvida de como criar uma fonte de dados, consulte a parte 5 do conjunto de posts). Preencha tal qual a imagem abaixo.

Captura de Tela 2015-10-06 às 04.13.04

Na próxima tela, basta que você dê acesso à conexão aos usuários que devem ter permissão à fonte de dados. Feito isso será possível que você crie seu primeiro KPI clicando em Create New KPI dentro da conexão.

Captura de Tela 2015-10-06 às 04.14.30  Uma nova tela será aberta e nessa janela de configurações você irá criar o Indicador de Desempenho através de algumas opções:

Captura de Tela 2015-10-06 às 04.27.29

  1. KPI Name – Nome que você irá dar ao Indicador;
  2. Value Format – Formato do valor que será disponibilizado no indicador. Você pode selecionar General, ou Currency ou Percent, por exemplo;
  3. Value – Local onde você irá por a query que demonstrará o valor do Indicador. Uma consulta que retorne o valor vendido até o momento no dia atual, por exemplo;
  4. Goal – Valor de comparação. Caso você queira ver como estão as vendas em um estado em comparação às vendas em outro estado, por exemplo. Essa configuração é opcional;
  5. Status – Determina através dos valores 1, 0 e -1 a cor do KPI. Para que seja possível entender, imagine que o KPI demonstra o total de vendas até o momento em uma loja de Brasília comparando o total de vendas até o memento em uma outra loja localizada em São Paulo. Caso as o total de vendas em Brasília esteja abaixo do total de vendas em São Paulo, o KPI ficaria vermelho. Se iguais os números de vendas para ambos os estados, amarelo e, quando as vendas em Brasília estiverem superiores às de São Paulo, Verde. Essa também é uma configuração opcional;
  6. Trend Set – Nessa configuração é possível determinar uma query que irá traçar como o Value se comportou com relação ao valor de comparação configurado no Goal em um determinado período de tempo. Também opcional;
  7. Visualization – Tipo de gráfico no qual a diferença entre o Value e o Goal será demonstrado. Essa opção somente será disponibilizada caso você configure o Trend Set;

Você irá criar o primeiro KPI chamado Meta de Jan – Fran.

Deixe o Value format default que é General. Para configuração do Value, altere a de Set Manually para Execute Query. Ao fazê-lo, Você verá ao lado a opção Define Query . Selecione essa opção e você irá se deparar com uma janela semelhante às de criação de Data Views (Para mais informações, consulte a Parte 5 do conjunto de posts). Mude A frequencia de Refresh para Minutos e deixe o default que é de 30 em 30 minutos.

dentro do Data View Query você irá usar a consulta abaixo:

SELECT SUM(CONVERT(INT,f.UnitPrice))
FROM FactInternetSales f 
JOIN DimProduct dp ON dp.ProductKey = f.ProductKey 
JOIN DimCustomer dc ON dc.CustomerKey = f.CustomerKey 
JOIN DimSalesTerritory dst ON dst.SalesTerritoryKey = f.SalesTerritoryKey 
JOIN DimDate dod ON dod.DateKey = f.OrderDateKey
WHERE dst.SalesTerritoryCountry IN ('France')
     AND dod.EnglishMonthName = 'January'
GROUP BY dst.SalesTerritoryCountry

Na opção de Goal você usará a opção Set Manually e irá inserir o valor 185000.

Já na opção Status você irá usar também a opção Execute Query e, da mesma forma como fez na configuração do Value fará na configuração do Status, porém, usará a consulta abaixo:

SELECT CASE WHEN SUM(CONVERT(INT,f.UnitPrice)) &amp;amp;amp;lt; 185000 THEN 1
			WHEN SUM(CONVERT(INT,f.UnitPrice)) &amp;amp;amp;gt; 185000 THEN -1
		ELSE 0 END
FROM FactInternetSales f 
JOIN DimProduct dp ON dp.ProductKey = f.ProductKey 
JOIN DimCustomer dc ON dc.CustomerKey = f.CustomerKey 
JOIN DimSalesTerritory dst ON dst.SalesTerritoryKey = f.SalesTerritoryKey 
JOIN DimDate dod ON dod.DateKey = f.OrderDateKey
WHERE dst.SalesTerritoryCountry IN ('France')
		AND dod.EnglishMonthName = 'January'
GROUP BY dst.SalesTerritoryCountry

Obs: É necessário que ao indicar os valores 1, 0 ou -1 você use o data type INTEGER. Caso use o tipo VARCHAR (ao colocar os valores entre aspas simples) a cor irá mudar dentro do painel de administração, mas, quando o KPI for visualizado na Web ou através do Aplicativo Mobile Datazen Viewer, a alteração de cor não irá funcionar.

Feito isso, sua tela estará conforme a imagem abaixo.

Captura de Tela 2015-10-06 às 04.57.26

Selecione a opção Create e seu primeiro Indicador de Desempenho estará pronto para consumo em qualquer um dos dispositivos que tenham acesso ao Hub.

Obs 2 – Caso você queira, por exemplo, alterar a meta dentro do KPI, não basta que você mude o número dentro da opção Goal. Você também precisará alterar a query do Status. Caso o contrário, supondo que o valor da atingido seja inferior ao valor da meta proposta, o Indicador não ficará vermelho, como deveria.

Basicamente, o que o Indicador que você criou acima está monstrando é que o valor alcançado através das vendas na França no mês de Janeiro está superior em 1% ao valor da meta proposta.


Agora iremos criar um segundo KPI. Clique em Create New KPI e o nomeie de Comp. Jan – GER x CAN. Nesse Indicador de Desempenho iremos comparar diariamente o valor alcançado através das vendas na Alemanha com relação ao valor alcançado através das vendas realizadas no Canadá.

Da mesma forma como você configurou o KPI anterior o faça neste novo.

Para a configuração do Value, use a query abaixo:

SELECT SUM(CONVERT(INT,f.UnitPrice)) PrecoUnitario 
FROM FactInternetSales f 
JOIN DimProduct dp ON dp.ProductKey = f.ProductKey 
JOIN DimCustomer dc ON dc.CustomerKey = f.CustomerKey 
JOIN DimSalesTerritory dst ON dst.SalesTerritoryKey = f.SalesTerritoryKey 
JOIN DimDate dod ON dod.DateKey = f.OrderDateKey
WHERE dst.SalesTerritoryCountry IN ('Germany')
		AND dod.EnglishMonthName = 'January'
		AND dod.DayNumberOfMonth = 31
GROUP BY dod.DayNumberOfMonth
ORDER BY dod.DayNumberOfMonth

Agora, para configuração do Goal, ao invés de inserir um valor manualmente como fez no KPI anterior, selecione a opção Execute Query e use a consulta abaixo:

SELECT SUM(CONVERT(INT,f.UnitPrice)) PrecoUnitario 
FROM FactInternetSales f 
JOIN DimProduct dp ON dp.ProductKey = f.ProductKey 
JOIN DimCustomer dc ON dc.CustomerKey = f.CustomerKey 
JOIN DimSalesTerritory dst ON dst.SalesTerritoryKey = f.SalesTerritoryKey 
JOIN DimDate dod ON dod.DateKey = f.OrderDateKey
WHERE dst.SalesTerritoryCountry IN ('Canada')
		AND dod.EnglishMonthName = 'January'
		AND dod.DayNumberOfMonth = 31
GROUP BY dod.DayNumberOfMonth
ORDER BY dod.DayNumberOfMonth

Faça o mesmo na configuração do Status usando a query abaixo:

WITH STATUS AS (
SELECT	CASE WHEN CASE WHEN dst.SalesTerritoryCountry = 'Germany' 
						THEN SUM(f.UnitPrice) 
					ELSE 0 END &lt; 
				 CASE WHEN dst.SalesTerritoryCountry = 'Canada' 
						THEN SUM(f.UnitPrice) ELSE 0 
					END THEN 1
		ELSE -1 
		END STATUS,
dst.SalesTerritoryCountry AS Pais
FROM FactInternetSales f 
JOIN DimProduct dp ON dp.ProductKey = f.ProductKey 
JOIN DimCustomer dc ON dc.CustomerKey = f.CustomerKey 
JOIN DimSalesTerritory dst ON dst.SalesTerritoryKey = f.SalesTerritoryKey 
JOIN DimDate dod ON dod.DateKey = f.OrderDateKey
WHERE dst.SalesTerritoryCountry IN ('Canada','Germany')
AND dod.EnglishMonthName = 'January'
AND dod.DayNumberOfMonth = 31
GROUP BY dod.DayNumberOfMonth, dst.SalesTerritoryCountry
) 

SELECT * FROM STATUS WHERE Pais &amp;amp;lt;&amp;amp;gt; 'Germany'

Agora, neste KPI nós iremos configurar a quarta opção, o Trend Set. Se você observar bem as consultas acima irá perceber que todas filtram o dia 31 de Janeiro, ou seja, todos os valores correspondem a esse dia.

No Trend Set, para esse KPI você irá traçar uma linha do tempo, onde o comparativo dos valores em cada dia do mês de Janeiro será demonstrado.

Para isso, utilize a consulta abaixo na opção Execute Query no Trend Set:

SELECT  UM(Germany) - SUM(Canada) ComparativoDiario
FROM (
		SELECT TOP	100000000
					dod.DayNumberOfMonth AS Dia,
					CASE WHEN dst.SalesTerritoryCountry = 'Germany' 
							THEN SUM(CONVERT(INT,f.UnitPrice)) 
					ELSE 0 END AS Germany,
					CASE WHEN dst.SalesTerritoryCountry = 'Canada'
							THEN SUM(CONVERT(INT,f.UnitPrice)) 
					ELSE 0 END AS Canada
		FROM FactInternetSales f 
		JOIN DimProduct dp ON dp.ProductKey = f.ProductKey 
		JOIN DimCustomer dc ON dc.CustomerKey = f.CustomerKey 
		JOIN DimSalesTerritory dst ON dst.SalesTerritoryKey = f.SalesTerritoryKey 
		JOIN DimDate dod ON dod.DateKey = f.OrderDateKey
		WHERE dst.SalesTerritoryCountry IN ('Germany','Canada')
				AND dod.EnglishMonthName = 'January'
		GROUP BY dod.DayNumberOfMonth, dst.SalesTerritoryCountry
		ORDER BY dod.DayNumberOfMonth
) TrendSet
GROUP BY Dia

Sua janela de configuração ficará igual a tela abaixo:

Captura de Tela 2015-10-06 às 05.24.17

Após isso, pressione o botão de Create e o seu novo KPI estará também disponível.

é possível também fazer referência à um dashboard dentro de um KPI e criar sub KPIs. Veremos isso mais tarde, nos posts seguintes.


No próximo post da Série Datazen Beginning, Você aprenderá a usar o Datazen Publisher para que seja possível iniciar a construção de Dashboards.

Datazen Beginning – Parte 4

Nest post da série Datazen Beginning você irá aprender sobre os tipos de autenticação de usuários no Microsoft Datazen e a administrá-los, bem como entender o que são os Hubs, para que eles são usados e a desenvolvê-los.


O Datazen Enterprise Services possui quatro maneiras distintas de prover a autenticação de usuários. São elas:

  1. Autenticação Default – Nesse modelo de autenticação você terá os dados de usuários e sua validação de senha feita dentro do Core Service. Quando essa opção é usada, ao criar o novo usuário uma URL será disponibilizada para que esse user crie uma senha de acesso. Após criado, o password poderá ser alterado a qualquer momento através do Painel de Administração;
  2. Autenticação via Active Directory – Basicamente, após configurado a conexão do Datazen Server ao Active Directory (isso pode ser feito na instalação – Veja na Parte 3 do conjunto de posts – ou, após a instação, dentro do Painel de Administração, na aba Authentication), os usuários cadastrados no Datazen terão suas informações absorvidas do AD inclusive a senha de acesso;
  3. Autenticação via ADFS – Para que seja possível configurar esse tipo de autenticação é necessário que você possua um servidor ADFS. Então, assim como no Active Directory, as informações de usuários virão a partir desse server (Esse tipo de autenticação será explicado na Série Datazen – Advanced).
  4. Autenticação Externa – Esse tipo de autenticação é utilizado em situações onde o usuário não precisa logar diretamente no Datazen Server. A autenticação é realizada via header ou cookie da requisição HTTP. Para que isso seja possível é necessário efetuar configurações externas (proxy ou IIS, por exemplo).

Agora que você aprendeu sobre os tipos de autenticação com as quais o usuário poderá ter acesso ao Datazen, irá aprender a administrar esses users.

Primeiramente você terá que se conectar ao painel de Administração do Datazen Server. para isso, se você seguiu a Parte 3 do conjunto de posts, acesse localhost:<porta>\cp. Essa URL dependerá de como você executou a instalação do Datazen.

Captura de Tela 2015-09-04 às 01.51.54

Para logar, digite Admin no campo de Username e a senha que você definiu na instalação para o Administrador do Core Service (para relembrar, veja na Parte 3 a quinta janela de instalação).

Para que seja possível criar um usuário será necessário que você clique na Aba Server Users no Painel de Administração.

Captura de Tela 2015-09-04 às 01.57.33

Ao fazê-lo você irá clicar no botão localizado no canto superior direito com nome Create User. Será aberta uma aba aonde será possível digitar todas as informações do Usuário.

Captura de Tela 2015-09-04 às 02.05.35

Feito isso, Caso os modos de autenticação do Active Directory ou ADFS estiverem configurados e esse usuário for membro de um dos dois servers, não será necessário definição de senha para o User. Porém, caso esses modos de autenticação não estiverem configurados ou o usuário não seja um de seus membro, o Datazen irá disponibilizar uma URL para que o User configure sua senha que será armazenada no Core Service. Essa URL ficará disponível na aba de Server Users em um link ao lado do nome do usuário.

Captura de Tela 2015-09-04 às 02.08.04

É necessário que pelo menos um usuário esteja configurado para que seja possível criar um ou mais Hubs pois cada Hub precisa de um owner.

Os Hubs são organizadores de Dashboards e KPIs dentro do Datazen Server. A proposta da aplicação é que você utilize de Hubs distintos para cada departamento de análise (Data Mart).

Na aba Home dentro do Painel de Administração clique em Create BI Hub.

Captura de Tela 2015-09-04 às 02.34.46

Para Criação do Hub você definirá o seu nome, o seu owner e a quantidade de usuários que poderão conectar-se simultaneamente dentro do Hub (para instalações não distribuídas é recomendado um máximo de 50 usuários).

Captura de Tela 2015-09-04 às 02.45.47

Após isso será possível observar que um novo conjunto de opções fora disponibilizado no Painel de Administração do Datazen. Essas opções são relacionadas a cada Hub criado.

Captura de Tela 2015-09-04 às 02.49.52

O permissionamento de usuários é realizado primeiramente a nível de Hub. Dentro de cada Hub é possível definir permissões a nível de Dashboards, KPIs, Data Sources e Activitys.

Captura de Tela 2015-09-04 às 03.13.05

Os nomes e configurações são muito intuitivos exceto as permissões de Activitys. Esse tipo de acesso é relacionado ao painel de comentários do KPI ou Dashboard (você verá mais sobre o painel de comentários no post em que estiver aprendendo sobre KPIs).

Todos os tipos de permissões são configurados por Usuário ou por Grupos de Usuários (você poderá criar os grupos na aba de configurações do Hub denominada User Groups).

Para dar acesso a um usuário ou um grupo de usuários basta selecionar o objeto ou grupo de objetos, o usuário ou grupo de usuários e selecionar ou não o check box Allow Access. No caso de permissionamentos relacionados às atividades (Activitys) você tem as opções:

  1. No Access – O usuário ou grupo de usuários não terá acesso a criar ou ler comentários de atividades nos KPIs e Dashboards;
  2. Read Only – O usuário ou grupo de usuários terá acesso de somente leitura aos comentários realizados;
  3. Full Access – O usuário ou grupo de usuários terá acesso a criar e ler comentários nas atividades.

Captura de Tela 2015-09-04 às 04.41.04


No próximo post você aprenderá sobre extração de dados (Data Sources) no Microsoft Datazen.