segunda-feira, 23 de janeiro de 2012

Text File Input

O step Text File Input é utilizado para ler diversos tipos de arquivos texto.    O formato mais comum entre eles é o Comma Separated Values (CSV).   Caso o arquivo texto tenha qualquer outra extensão, será necessário que o mesmo possua campos de tamanho fixo.

Este componente, assim como o Excel Input, permite que o usuário selecione uma lista de arquivos a serem lidos, ou uma lista de diretórios de onde serão lidos os arquivos, podendo ou não obedecer uma expressão regular.      Além disso, o step também poderá receber diretórios ou nomes de arquivos provenientes de steps anteriores, seja por variável, seja por um campo do fluxo, permitindo desta forma que o manuseio dos arquivos seja ainda mais genérico.

Veremos a seguir as opções específicas, ou seja, o diferencial deste componente em relação aos outros steps de Input.


Filetype – o usuário poderá definir entre um arquivo do tipo CSV ou um arquivo de tamanho fixo;

Separator – caso o arquivo seja do tipo CSV, é provável que você defina o separador dos campos.   Normalmente a vírgula ou o ponto-e-vírgula são mais utilizados;

Enclosure – caso os campos estejam dentro de um par de caracteres (parênteses ou aspas duplas por exemplo), o caractere deve ser definido aqui;

Escape – define o caractere que irá ignorar o caractere definido como separator, caso este seja necessário dentro do texto.
Ex:  Se o separator for uma aspas simples, e uma coluna tiver o texto ‘Gota d´água’, será necessário que o arquivo CSV venha com o texto ‘Gota d\´água’ para que o componente entenda este texto como um campo só ao invés de dois.   Neste caso, a barra serve como Escape;

Header – define se haverá um cabeçalho e quantas linhas correspondem a este cabeçalho;

Footer – segue a mesma regra do Header também para o rodapé;

No empty rows – impede que as linhas vazias sejam enviadas para o fluxo;

Include filename in output – define se o nome do arquivo também será enviado ao fluxo;

Filename field name – define o nome do campo que levará o nome do arquivo pelo fluxo;

Rownum in output – define se o número da linha no arquivo será enviada ao fluxo;

Row number field name – define o nome do campo que levará o número da linha;

Rownum by file? – define se o número das linhas será reiniciado a cada arquivo lido;

Format – formato do arquivo.    Pode ser DOS, UNIX ou mixed;

Encoding – especifica o encoding que será utilizado;

Limit – Especifica o número de linhas que serão lidas por arquivo.  0 (zero) significa a leitura de todas as linhas.

Na aba Fields, veremos mais algumas especificidades do componente.    Caso tenhamos escolhido o tipo de arquivo CSV na aba Content, basta clicar no botão “Obtém Campos” e, automaticamente, os campos identificados de acordo com o cabeçalho (Header) e divididos pelo caractere definido como Separator serão exibidos.


Caso o tipo de arquivo definido na aba Content seja Fixed, ao clicarmos no botão “Obtém Campos”, visualizaremos a seguinte tela:

Ao clicarmos em qualquer ponto da visualização do arquivo, definiremos a quantidade de caracteres e/ou espaços que formarão os campos.   A seta vermelha indica o limite do campo.   Para adicionar uma seta, basta clicar no ponto desejado.   Para retirar a limitação, basta clicar novamente sobre a seta.


Ao seguirmos pelo botão “Next”, definiremos o nome de cada campo que acabamos de definir.   Perceba que na parte direita da janela visualizaremos os dados do intervalo de espaço que definimos anteriormente.