Os relatórios do Crystal Reports são processados por um WebService chamado “WSApp”, que é instalado no servidor junto com o site. É este serviço que gera os arquivos PDF a partir dos arquivos RPT.
O sistema executa os passos abaixo para processar um arquivo RPT após a solicitação do usuário:
- Site - Extração do arquivo RPT salvo no banco de dados.
- Site - Envio do arquivo RPT, junto do valor dos parâmetros e dados de conexão, para o Web Service WSApp.
- WSApp - O arquivo RPT é recebido.
- WSApp - O arquivo RPT é processado para gerar o arquivo PDF.
- WSApp - O arquivo PDF é retornado.
- Site - O arquivo PDF é recebido e carregado para o usuário
Melhoria
Para melhorar o desempenho da aplicação e evitar o desperdício de recursos do servidor, modificamos a rotina de geração de arquivos PDF para que o arquivo RPT seja enviado para Web Service apenas na primeira vez que o relatório for gerado. Nessa ocasião, o arquivo RPT fica salvo em uma pasta dentro da pasta raiz do Web Service.
Se a geração de um relatório com uma versão mais recente de um arquivo RPT previamente armazenado na pasta do Web Service for solicitada, este será considerado como um novo arquivo, e as duas versões do arquivo RPT ficarão armazenas na pasta.
O processo passa a ser da seguinte forma:
- Site - Obtenção do ID do arquivo RPT salvo no banco de dados.
- Site - Tentativa de geração de PDF enviando apenas o ID do arquivo RPT para o Web Service.
- WSApp - Tenta encontrar o arquivo RPT na pasta usando o ID recebido.
-
WSApp - Arquivo RPT foi encontrado?
-
Sim
- WSApp - O arquivo RPT é processado para gerar o arquivo PDF.
- WSApp - O arquivo PDF é retornado.
-
Não
- WSApp - Um erro específico é disparado, indicando que o arquivo não foi encontrado.
- Site - O erro é interpretado pelo site, que faz uma nova tentativa enviado dessa vez o ID e o Próprio arquivo RPT.
- WSApp - O arquivo RPT é recebido no Web Service e armazenado junto com o ID deste.
- WSApp - O arquivo RPT é processado para gerar o arquivo PDF.
- WSApp - O arquivo PDF é retornado.
-
Sim
- Site - O arquivo PDF é recebido e carregado para o usuário
Quando o Web Service WSApp for atualizado, os arquivo armazenas serão excluídos, reiniciando todo o ciclo apresentando acima.