A criação de relatórios em aplicações corporativas acaba na maioria dos casos sendo uma preocupação a mais ao desenvolvedor principalmente se ele estiver usando a tecnologia DataSnap em aplicações distribuídas. Por mais que haja ferramentas que possibilitem a criação destes relatórios para cada uma das aplicações clientes que acessam o servidor de aplicação DataSnap, em muitos casos as habilidades de gerenciar a ferramenta de geração de relatórios, o custo de uma licença de uso e até mesmo a redundância de implementação do mesmo tipo de relatório, podem se tornar um empecilho de utilização da mesma.
Para esta situação encontramos a solução através de um Web Service que é utilizado para integração e comunicação entre diferentes aplicações. Assim sendo, por meio deste Web Service será gerado um relatório em Rave Reports e disponibilizado como produto final apenas um arquivo em pdf para ser mostrado por qualquer aplicação cliente.
Para desenvolver toda esta estrutura, definiremos primeiramente a arquitetura da aplicação, passando em seguida para a implementação da mesma através da criação da base de dados, servidor de aplicação DataSnap, Web Service e finalmente três exemplos de aplicações clientes que possam exemplificar com tranquilidade a solução proposta neste artigo.
Arquitetura da aplicação
A criação de relatórios em aplicações cliente que usam a arquitetura DataSnap é um desafio aos desenvolvedores, pois estes devem escolher frameworks, componentes e outros métodos de geração de relatórios para as mesmas, partindo do premissa que tendo um servidor de aplicação DataSnap é possível implementar aplicações clientes na maioria das plataformas e linguagens de programação existentes que suportam RPC (Remote Procedure Call) ou comunicação através de REST (Representational State Transfer).
Assim sendo, pensando neste desafio e na possibilidade otimizar tempo de desenvolvimento e organizar melhor os relatórios a serem disponibilizados em servidores de aplicação DataSnap criou-se uma arquitetura com este objetivo conforme mostra a Figura 1.
Nesta arquitetura cada aplicação cliente terá a funcionalidade de invocar o Web Service responsável pela geração de relatórios. Este Web Service ao ser invocado fará uma chamada remota ao Servidor DataSnap que terá a responsabilidade de gerar o relatório, salvá-lo no formato pdf ou qualquer outro formato que seja transparente as aplicações clientes como XML, JSON e tantos outros. Ficando por conta de cada uma das aplicações cliente apenas criar o mecanismo de mostrar este relatório dentro da aplicação de acordo com o formato de relatório escolhido.