FEBRABAN - Layout para Conta Eletrônica de Telecomunicações - V3R0

4,753 views
Skip to first unread message

Felipe Prenholato

unread,
Apr 16, 2013, 2:40:39 PM4/16/13
to Python Brasil Discussion List
Boas a todos.

Eu estou iniciando em um projeto onde vou precisar trabalhar com extratos de contas da Vivo, Claro e outras operadoras. Todas estas pelo que entendi devem exportar os extratos no formato 'FEBRABAN', que desconfio ser o [1] V3R0: "LAYOUT FEBRABAN CONTA ELETRÔNICA DE TELECOMUNICAÇÕES"

Eu procurei por algumas horas sobre FEBRABAN, V3R0, conta telefônica, extrato e outras coisas em python e não achei nenhum pacote em lugar algum para parsear estes arquivos para uma estrutura mais simples de trabalhar, e provavelmente vou precisar escrever um.

Ai vem a lista, não tenho nenhum problema em escrever um parser do zero, alguém já fez e estaria interessado em compartilhar para que eu e talvez outros não tenhamos retrabalho e possa talvez melhorar o parser?


Felipe 'chronos' Prenholato.
Linux User nº 405489
Home page: http://devwithpassion.com | http://chronosbox.org/blog
GitHub: http://github.com/chronossc/ | Twitter: http://twitter.com/chronossc

Laerte M. Rodrigues

unread,
Apr 16, 2013, 3:03:32 PM4/16/13
to python...@googlegroups.com
Olá Felipe,

ja trabalhei com a codificação do febraban mas tive q fazer o parsing em delphi. Este tipo de arq tem a formatação com posição fixada (o primeiro caracter indica o tipo da linha, e após isto, cada parte da string possui um valor numa determinada posição (ex: do caracter 2 ao 9 na linha q começa com 4 representa a data da ligação [se não me engano, é isto]).

Acho q seria interessante um framework + generico, tipo, dado uma entrada texto e um template de parsing (no caso, indicando como é a formatação fixada) retorne uma lista com os itens desejados.



--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "python-brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para python-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
Grato,

Laerte Mateus Rodrigues
Mestre em Informática -- PUC Minas
Doutorando em Bioinformática -- UFMG

Maxwell Oliveira

unread,
Apr 17, 2013, 1:36:15 PM4/17/13
to python...@googlegroups.com
Tem  este facil para converter para Python

https://github.com/arthurix/cnab240/tree/master/lib/retorno

paulo alem

unread,
Apr 17, 2013, 1:49:50 PM4/17/13
to python...@googlegroups.com
Eu fiz um desses a uns anos atras pra mapear arquivos de layout fixo, como esse que voce vai precisar trabalhar, para objetos. Acho que te atenderia, se nao tivesse sido feito em Groovy. Eu tinha a ideia de fazer uma versao pra python, mas como eu tenho tido a necessidade de fazer esse tipo de tarefa ultimamente, nao saiu do papel.
Mas segue o link, se voce nao tem como requisito fazer isso em python(improvavel :)




2013/4/16 Laerte M. Rodrigues <laerte...@gmail.com>

Vinicius Assef

unread,
Apr 17, 2013, 5:16:52 PM4/17/13
to python...@googlegroups.com
Felipe, eu trabalhei quase 20 anos em sistemas de faturamento de telecom.

Valem algumas observações sobre esses layouts com campos de largura fixa:

1. O layout fixo muitas vezes é sinônimo de dor de cabeça. Eles são
feitos assim porque os sistemas bancários e de telecom que lêem e
geram esses arquivos, em sua maioria, eram feitos usando linguagem
Cobol ou Natural. Essas linguagens trabalham com strings de tamanho
fixo.

2. Sendo assim, se houver algum deslocamento, você terá problemas.
Portanto, o maior foco dos seus testes será na leitura posicional dos
dados. Se você precisar gerar informação de volta p/ as operadoras,
sugiro redobrar os testes.

3. "Largura fixa" significa que os campos de string devem ser
preenchidos com um monte de espaços em branco, se o conteúdo não
atingir a largura máxima do campo. E devem ser truncados se excederem.

4. Atenção aos campos de valores, também. Zeros à esquerda, ausência
da vírgula decimal complicam às vezes.

5. Os tipos de registros (normalmente a 1ª posição de cada linha)
definem o formato dele. Prepare-se para lidar com ciosas estranhas aí
no meio. hehehe

Se precisar de alguma ajuda de entendimento, grite que tento ver o que
ainda lembro disso. rs

--
Vinicius Assef



2013/4/16 Felipe Prenholato <phili...@gmail.com>:

Linux Polegato

unread,
Apr 17, 2013, 7:25:51 PM4/17/13
to python...@googlegroups.com

Olá!

Não sei qual seu propósito, também desconheço obrigatoriedade de disponibilizar dados no formato Febraban, mas tenho um script que pega os dados do csv da Claro e gera um relatório em csv também, mas de forma resumida para analisar qual usuário abusou, vendo de cara valores totais e chamadas com mais de 10x para o mesmo número no mês, além de outras análises possíveis, permitindo conferir o valor do minuto em cada caso.

Agora mudei para a TIM recentemente, estou terminando uma interface para capturar automaticamente o csv da página da TIM, ela permite exportar apenas 50 registros por vez de forma online, como tenho que gerenciar mais de 100 linhas e mais de 5000 eventos, não dá pra fazer manual essa captura, com a Claro gero o csv completo online.

Vou montar uma página com screenshots e um snapshot para quem quiser testar e dar sugestões, posto mais tarde.

[]'s
Junior Polegato

--

Moises Trovó

unread,
Apr 18, 2013, 10:34:13 AM4/18/13
to python...@googlegroups.com
Aqui aonde eu trabalho a gente até tem uma lib pra parse de arquivos de tamanho fixo mas é toda feita em Java.

Acho que você tem duas opções, com struct [1] dá pra fazer um parser bem rápido em Python, daí acho que o trabalho maior seria como fazer a entrada do formato e uma maneira de transformar os campos lidos logo após a leitura.

Se for pensar em algo mais complexo e compensar ter esses dados em um sqlite, você pode pensar em um parser simples que transforma o arquivo em csv. Com o csv em mãos você consegue importar fácil esses dados para uma tabela com o próprio sqlite pois ele aceita esse tipo de formato como entrada.


2013/4/16 Felipe Prenholato <phili...@gmail.com>
--

Felipe Prenholato

unread,
Apr 19, 2013, 9:59:54 AM4/19/13
to Python Brasil Discussion List
Ola pessoal, obrigado pelas dicas valiosas (se alguém mais tiver pode postar), vão ser muito uteis em um futuro próximo.

O projeto dos arquivos FEBRABAN foi adiado por enquanto, logo no fim das contas não vou trabalhar nisso agora infelizmente.

Eu volto de qualquer maneira para dizer no que deu, quando der em algo :). É certo que vou acabar tendo uma lib para ler estes arquivos quando rolar o projeto.

Felipe 'chronos' Prenholato.
Linux User nº 405489
Home page: http://devwithpassion.com | http://chronosbox.org/blog
GitHub: http://github.com/chronossc/ | Twitter: http://twitter.com/chronossc


Silvio Luiz

unread,
Feb 15, 2014, 6:35:19 PM2/15/14
to python...@googlegroups.com
Pessoal boa noite,

Ressuscitando um pouco o tópico hehe Alguém possui a versão antiga da especificação do layout Febraban para Telecom? Por algum motivo parece que a Claro está gerando um formato diferente, estou assumindo que é o V2R0 mas não tenho como verificar. Possuo os arquivos gerados mas não a especificação, alguém tem o pdf/xls com essa especificação?

Abs,

Silvio Luiz

Silvio Luiz

unread,
Feb 18, 2014, 12:09:16 PM2/18/14
to python...@googlegroups.com
Acabei conseguindo o arquivo diretamente com a febraban. A dificuldade é pq a mesma quer adotar o novo padrão que é bem mais completo e existe forte resistência das operadoras(incluindo a Claro). 

Obrigado de qualquer sorte :)



Att,

Silvio Luiz


Você está recebendo esta mensagem porque se inscreveu no grupo "Python Brasil" dos Grupos do Google.

Flávio Casacurta

unread,
Jun 21, 2014, 9:22:25 PM6/21/14
to python...@googlegroups.com
Precisei de um parser e unparser para um sistema de troca de informações com bancos. 

Pesquisei aqui e somente encontrei este tópico.

Como não encontrei nenhuma solução pronta criei a minha https://github.com/flavio-casacurta/File-Fixed, a qual compartilho.

Como não foi necessário para meu sistema o unparser  NÃO prevê "estouro" de tamanho de campos.

[]s

Kaio Cesar

unread,
Jun 21, 2014, 9:33:12 PM6/21/14
to python...@googlegroups.com
Flávio, vê se te ajuda, já passei pela mesma treta.

Flávio Casacurta

unread,
Jun 22, 2014, 4:26:17 PM6/22/14
to python...@googlegroups.com

@Kaius

Obrigado, mas meu parser/unparser ficou genérico e é Python.
Eu criei um json com as informações de cada lay-out, "nome do campo, tamanho, tipo('int' ou 'str') e decimais (se tiver)".
Se a APP somente
o arquivo o parser devolve namedtuple se não devolve um dict, o unparser aceita os dois.
Eu postei aqui justamente para compartilhar se alguém tiver o mesmo problema

[]s

Kaio Cesar

unread,
Jun 22, 2014, 4:29:23 PM6/22/14
to python...@googlegroups.com
Entendi, por enquanto não passei a solução pra python porque fui obrigado a fazer em java. Mas assim que puder, se não for te atrapalhar
compartilha esse script com a comunidade, de vezes em quando aparece alguém desesperado por essa solução, que nem eu um dia kkk vlw.

Flávio Casacurta

unread,
Jun 23, 2014, 7:21:23 PM6/23/14
to python...@googlegroups.com
@Kaius

Inseri o tratamento de estouro de campos

[]s 

Wanderley Soares de Andrade

unread,
Jul 22, 2014, 10:06:32 AM7/22/14
to python...@googlegroups.com
Bom dia,

Pessoal,

Hoje a empresa na qual trabalho já extrai as informações de conta no formato Febraban, porém um cliente solicitou a leitura do arquivo PDF de sua conta para o mesmo propósito. Vocês sabem informar se há uma estrutura definida para a conta TIM, através e coordenadas ou algo semelhante no documento PDF?

Abraços e obrigado pela atenção
Reply all
Reply to author
Forward
0 new messages