Apresentando o novo Extrator de Arquivos

O Extrator de Arquivos foi reescrito do ZERO e recebeu novos recursos empolgantes, estreando a iniciativa da LATROMI de revisão e atualização de cada um dos tipos de objetos existentes.

Novos Recursos

Fontes de Dados

Anteriormente, os dados utilizado para geração dos arquivos eram obtidos de uma única configuração de Fonte de Dados.

O novo Extrator de Arquivos nos permite criar quantas configurações de Fonte de Dados forem necessárias, inclusive utilizando conexões diferentes.

Por exemplo, agora é possível buscar arquivos de um banco de dados PostgreSQL e de um banco de dados ORACLE no mesmo Extrator de Arquivos.

Origens

Anteriormente, o Extrator de Arquivos oferecia apenas duas possibilidades de extração de arquivos:

  • Do Banco de Dados, no formato binário.
  • Do Banco de Dados, no formato texto plano.

O novo Extrator de Arquivos oferece novas possibilidades de extração de arquivos, que agora
são chamadas de Origens:

  • Do Banco de Dados, no formato binário.
  • Do Banco de Dados, no formato texto plano.
  • De Caminho Físico no servidor.
  • De Web API’s
  • Do FTP

Além das novas origens, agora também podemos combinar várias delas em um único Extrator de Arquivos.

Por exemplo, no mesmo Extrator de Arquivo agora é possível extrair arquivos do banco de dados e do FTP ao mesmo tempo.

E por fim, cada uma das origens pode ser vinculada a uma das Fontes de Dados configuradas. Caso a fonte de dados retorne mais de um registro, a origem será processada para cada um deles.

Mudanças

Múltiplos Arquivos

Antes

Anteriormente, por padrão, o Extrator de Arquivos gerava apenas um arquivo por execução. Para gerar mais de um arquivo, era necessário marcar a opção Habilitar compressão de arquivos. Quando essa opção estivesse marcada, cada um dos registros retornados pela Fonte de Dados resultava em um arquivo gerado, e no final um arquivo compactado com extensão .zip era retornado.

Agora

No novo Extrator de Arquivos, a opção Habilitar compressão de arquivos foi removida, não havendo limitação de quantidade de arquivos. Todas as linhas retornadas pelas Fontes de Dados em uso sempre serão consideradas para a geração dos arquivos. No entanto, o arquivo final só será compactado quando mais de um arquivo for gerado. A compactação nunca ocorrerá para um único arquivo.

Cache

Antes

Anteriormente, o Extrator de Arquivos extraia o arquivo em uma pasta do site (no servidor), e então retornava a URL deste arquivo. Quando o sistema identificava através do nome do arquivo que já havia sido realizada uma extração, o sistema retornava a URL do arquivo que já havia sido extraído.

Em alguns casos, esse comportamento gerava um problema: O conteúdo do arquivo era substituído no banco de dados, e ao chamar o Extrator de Arquivos, continuava retornando o mesmo arquivo.

Para obrigar o sistema a fazer a extração, era necessário gerar um caminho de arquivo diferente no Extrator de Arquivos, sendo necessário optar por uma das duas abordagens abaixo:

  • nome_do_arquivo_v2.txt
  • /v2/nome_do_arquivo.txt

Agora

O novo Extrator de Arquivos, não extrai mais o arquivo fisicamente no servidor. O arquivo é gerado e então retornado na reposta da requisição, tudo em memória.

Dessa maneira, o único agente responsável por determinar se o arquivo já foi gerado anteriormente, e então, evitar que o processamento ocorra desnecessariamente é o navegador através da diretiva Cache-Control do protocolo HTTP.

Essa diretiva poder ser manipulada nas Configurações do novo Extrator de Arquivos, no campo chamado Cache HTTP (segundos).

Para romper o Cache HTTP controlado pelo navegador, nos casos onde sabemos que o conteúdo do arquivo pode ter sido modificado, basta enviar um parâmetro com qualquer valor aleatório para o mesmo. Isso fará com que uma nova URL seja gerada, e então o navegador entenderá que trata-se de um arquivo que ainda não foi extraído, enviando a requisição de extração para o servidor.

URL de Extração

Antes

Anteriormente, para executar um Extrator de Arquivos através de uma URL, o seguintes formatos eram utilizados:

Para baixar o arquivo

downloadfile/<Codigo do Extrator>/?_<parametro1>=<valor do "parametro1">

Para visualizar o arquivo no navegador

getfile/<Codigo do Extrator>/?_<parametro1>=<valor do "parametro1">

Neste formato, os parâmetros do Extrator de Arquivos eram passados precedidos por _ (underscore), como podemos observar na passagem do parâmetro “parametro1”.

Agora

O novo Extrator de Arquivos é executado através de uma requisição de Web API GET, não sendo mais necessário preceder o nome dos parâmetro com _ (underscore):

Para baixar o arquivo

api/fileextractors/<Codigo do Extrator>/downloadfile/?<parametro1>=<valor do "parametro1">

Para visualizar o arquivo no navegador

api/fileextractors/<Codigo do Extrator>/getfile/?<parametro1>=<valor do "parametro1">
O formato utilizado anteriormente continua sendo suportado em função da retro compatibilidade.