Crystal Reports - Cache de arquivos RPT

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:

  1. Site - Extração do arquivo RPT salvo no banco de dados.
  2. Site - Envio do arquivo RPT, junto do valor dos parâmetros e dados de conexão, para o Web Service WSApp.
  3. WSApp - O arquivo RPT é recebido.
  4. WSApp - O arquivo RPT é processado para gerar o arquivo PDF.
  5. WSApp - O arquivo PDF é retornado.
  6. 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:

  1. Site - Obtenção do ID do arquivo RPT salvo no banco de dados.
  2. Site - Tentativa de geração de PDF enviando apenas o ID do arquivo RPT para o Web Service.
  3. WSApp - Tenta encontrar o arquivo RPT na pasta usando o ID recebido.
  4. WSApp - Arquivo RPT foi encontrado?
    • Sim
      1. WSApp - O arquivo RPT é processado para gerar o arquivo PDF.
      2. WSApp - O arquivo PDF é retornado.
    • Não
      1. WSApp - Um erro específico é disparado, indicando que o arquivo não foi encontrado.
      2. Site - O erro é interpretado pelo site, que faz uma nova tentativa enviado dessa vez o ID e o Próprio arquivo RPT.
      3. WSApp - O arquivo RPT é recebido no Web Service e armazenado junto com o ID deste.
      4. WSApp - O arquivo RPT é processado para gerar o arquivo PDF.
      5. WSApp - O arquivo PDF é retornado.
  5. 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.