17 Abril 2018

POC em parceria com a Randstad – Geração dinâmica de RDL

Este artigo aborda o desenho de uma solução de geração de Report Definition Language (RDL) face à necessidade de acompanhar o mercado e apoiar as operações que prestam serviços aos clientes Randstad.

Introdução

Atualmente, para cada campanha em clientes Randstad, é necessário que seja aberto um ticket em Jira, podendo demorar 1 ou 2 dias a ser endereçado e resolvido, facto esse que tem impacto na ausência de relatórios quando as campanhas em clientes Randstad entram em produção.

Após uma breve análise, verificou-se que os relatórios utilizados eram apenas para listagens, sendo assim muito semelhantes.

Devido à necessidade de acompanhar o mercado e apoiar as operações que prestam serviços aos clientes Randstad, desenhou-se uma solução de geração de Report Definition Language (RDL) dinâmico com a qual se pretende:

1. Diminuir o tempo de resposta na disponibilização de relatórios operacionais;
2. Dar maior autonomia à equipa responsável pelas campanhas e acompanhamento das operações (NOC) para configuração dos mesmos;
3. Facilidade de criação de relatórios operacionais;
4. Diminuir custos com fte alocados para a elaboração de um relatório à medida.

Descrição da Solução Proposta

De forma a responder às necessidades do cliente, foi proposta uma interface e um engine para a geração de RDL’s dinâmicos - Report Definition Language (RDL) dinâmico, é um relatório que é gerado utilizando as bibliotecas da Microsoft e recorrendo a c# ou visual basic.

Para que a solução seja dinâmica e interativa, houve a necessidade de criação de um front-end que permite ao utilizador final a seleção dos dados que pretende observar no relatório dinâmico. A criação do RDL torna-se assim user-friendly porque permite a rápida seleção de dados e criação do Report.

Recorreu-se a mockups e a um diagrama de sequências, de forma a salvaguardar o envolvimento do cliente ao longo da prova de conceitos.

Mockups

Por se tratar de uma prova de conceitos e a solução não poder ser complexa devido à reduzida experiência dos utilizadores na criação de relatórios, optou-se por desenhar uma interface minimalista.

O desenho inclui 3 etapas de criação, “Data Source Configuration”, com escolha do servidor, datasource e objeto fonte do report (table, stored procedure ou view), “Report information e Report Prompts”, com informação do conteúdo do report e “Preview do Relatório”.

O primeiro ecrã é utilizado para configurar a informação relativamente ao servidor e base de dados.

RDL randstad business intelligence report definition language BI4ALL

Figura 1 – Mockup de ecrã para seleção da base de dados

 

O segundo ecrã é utilizado para configurar a informação face ao relatório, onde são selecionadas as características dos mesmos, nomeadamente as colunas.

RDL randstad business intelligence report definition language BI4ALL

Figura 2 – Mockup para configuração do relatório e seleção das colunas

 

O terceiro ecrã é um preview do relatório.

RDL randstad business intelligence report definition language BI4ALL

Figura 3 – Mockup para pré-visualização do relatório customizado

 

Diagrama de Sequências

De forma a garantir que o fluxo dos ecrãs era devidamente percetível perante o cliente, elaborou-se um diagrama de sequências.

RDL randstad business intelligence report definition language BI4ALL

Figura 4 – Diagrama de sequências

 

Engine da geração de RDL dinâmico

O core deste POC incide sobre o engine da geração de RDL dinâmico. Para tal e como base, foi seguido de forma minuciosa as melhores práticas da Microsoft que se encontram disponíveis no endereço

https://technet.microsoft.com/en-us/library/ms170667(v=sql.105).aspx

A geração do RDL dinâmico divide-se essencialmente nas seguintes partes:

1. Instanciação do objeto XML

Figura 5 – Exemplo de instanciação do objeto

 

2. Adicionar elementos ao relatório

RDL randstad business intelligence report definition language BI4ALL

Figura 6 – Exemplo para adicionar elementos ao relatório

 

3. Adicionar datasources ao relatório

RDL randstad business intelligence report definition language BI4ALL

Figura 7 – Exemplo para adicionar datasources ao relatório

 

4. Adicionar datasets

RDL randstad business intelligence report definition language BI4ALL

Figura 8 – Exemplo para adicionar datasets a um relatório

 

5. Adicionar as colunas

RDL randstad business intelligence report definition language BI4ALL

Figura 9 – Exemplo para adicionar colunas a um relatório

 

6. Adicionar a tablix

RDL randstad business intelligence report definition language BI4ALL

Figura 10 – Exemplo para adicionar uma tablix a um relatório

 

RDL randstad business intelligence report definition language BI4ALL

Figura 11 – Exemplo para adicionar uma tablix a um relatório – parte II

 

No final de cada iteração, o relatório recém-gerado é guardado e publicado no report server tornando-se assim disponível para os utilizadores.

RDL randstad business intelligence report definition language BI4ALL

Figura 12 – Exemplo para guardar o relatório

 

Versão final do front-end

O front-end desenvolvido em .net core 2.0, teve como base o desenho dos mockups anteriormente descritos.

A simples customização de um relatório, permite ao utilizador, de forma rápida e intuitiva, criar os seus relatórios on-demand.

Ecrã 1 – Selecionar a base de dados

RDL randstad business intelligence report definition language BI4ALL

Figura 13 -Ecrã que permite  selecionar a base de dados

 

Ecrã 2 – Configurar o Relatório

RDL randstad business intelligence report definition language BI4ALL

Figura 14- Ecrã de configuração do relatório

 

Ecrã 3 – Selecionar as colunas a serem apresentadas no relatório

RDL randstad business intelligence report definition language BI4ALL

Figura 15 – Ecrã que permite a seleção de colunas a apresentar no relatório

 

Bases de dados

Tabelas utilizadas para a aplicação:

RDL randstad business intelligence report definition language BI4ALL

Figura 16 – Diagrama da base de dados

 

Exemplo de alguns relatórios criados e guardados na base de dados aplicacional:

Figura 17 – Exemplo de três relatórios configurados

 

Ferramentas/Tecnologias utilizadas

• Base de dados
- Microsoft SQL Server 2016 (SSRS, SSMS)
• C# 7.0
• .Net Core 2.0

Exemplo de report gerado

Os exemplos contêm dados exemplificativos, em virtude dos relatórios conterem informação sigilosa para o cliente.

XML

RDL randstad business intelligence report definition language BI4ALL

Figura 18 – Exemplo em XML de um relatório gerado

 

Tabela SSRS (estes dados são meramente exemplificativos, devido ao acordo de confidencialidade com o cliente)

RDL randstad business intelligence report definition language BI4ALL

Figura 19 – Exemplo de um tablix criado

 

Conclusão

A primeira versão do produto conta com uma base de dados e um backoffice que possibilita a customização dos relatórios, tendo um número limitado de templates.

Apesar da complexidade no desenvolvimento da solução, esta pode acrescentar uma mais valia na criação de relatórios (ssrs ondemand), de forma rápida e intuitiva para o utilizador final.

A implementação da solução apresentada, poderá contribuir para uma diminuição do esforço em 200 horas e, por sua vez, irá diminuir os custos dos projetos.

A segunda versão do produto irá contemplar a customização de novos templates, a edição de relatórios já existentes, a criação de perfis de visualização dos relatórios e comandos de voz.

RDL randstad business intelligence report definition language BI4ALL

 

 

 

 

RDL randstad business intelligence report definition language BI4ALL

 

 

 

 

RDL randstad business intelligence report definition language BI4ALL

Blog