FEBRABAM - CNAB240 para Boletos com Registro e Retorno

16/8/2011 15:41:00 - Fábio Ferreira de Souza

imageEstou estudando o CNAB240 V08.4 (Centro Nacional de Automação Bancária - FEBRABAN) para troca de arquivos de remessa e retorno para implementar no meu Gerador de Boleto ASP.Net, não é simples, principalmente por causa no numero de campos, e também por eu já estar fazendo em forma de componente, tenho que disponibilizar a gerencia de todos os campos.

Para isso criei uma classe por Template: Reg<T>(), onde T, pode ser qualquer enumerador.

Também criei uma classe para atributos: RegFormat(), para especificar os parâmetros do enumerado, o resultado final é elegante.

image

Para a NF-e estou usando a mesma classe, e de agora em diante qualquer tipo de troca de arquivos em formato texto sem delimitador, estarei usando esta classe que ajuda muito.

Veja o exemplo abaixo:

Reg<CNAB240ArquivoHeader> regArqHeader = newReg<CNAB240ArquivoHeader>();
regArqHeader[CNAB240ArquivoHeader.Controle_Banco] = 237;
regArqHeader[CNAB240ArquivoHeader.Empresa_Nome] = "IMPACTRO Informática";
string cOut = regArqHeader.Line + "\r\n";

 

imageO simples código acima gera uma linha de registro, com as 240 posições de acordo com a estrutura definida com os atributos de cada item do enumerados.

O CNAB240 possui várias estruturas de registro no mesmo arquivo.
Eu vou resumir e indicar as classes de cada estrutura a critério de exemplo apenas, para uma melhor compreensão baixe o arquivo completo.

O CNAB prevê várias operações de arquivos, assim de acordo com cada tipo de operação é exigido um “segmento” estruturado específico

Header e Trailer Arquivo CNAB240
2.2 - Header e Trailer do Arquivo

Header Arquivo

enum CNAB240ArquivoHeader {}…
image

Trailer Arquivo

enum CNAB240ArquivoTrailer {}…
image

Header e Trailer do Lote de Cobrança
3.1.3 - Pagamento de Títulos de Cobrança

Header Cobrança

enum CNAB240CobrancaHeader{}…
image

Registro Detalhe - Segmento J (Obrigatório - Remessa / Retorno)

enum CNAB240CobrancaDetalhe{}…
image

Trailer Cobrança

enum CNAB240CobrancaTrailer{}…
image