Boleto Santander 8 Digitos

118 views
Skip to first unread message

Robson C

unread,
Nov 22, 2020, 5:04:08 PM11/22/20
to JRimum Community
Prezados boa noite 

Estou tentando fazer um teste com o banco Santander, o numero da conta que me foi passado tem 8 digitos no formato abaixo

999.99.999-9

e ocorreu o erro 

Erro ao tentar escrever o campo "null" com valor [99999999] na posição [2] no layout do registro.

Tamanho da string [8] diferente do especificado [6]! Field [name="", value="99999999", isBlankAccepted=false, formatter=] FixedField [length=6, instantLength=8, filler=ZERO_LEFT, truncate=false]

Estou usando a versão  0.2.3-DEV-SNAPSHOT

Vi que existe outra mensagem relatando o mesmo erro como pode ser corrigido ou será que já foi em alguma outra versão? esta que estou a usar será que não esta desatualizada????

Obrigado.


Guilherme

unread,
Nov 23, 2020, 5:23:43 AM11/23/20
to jrimum-c...@googlegroups.com
Não tem atualizada, um cara aqui do grupo tem um git para ir atualizando conforme o que for surgindo, no meu serviço tenho muitas atualizações como 8 digito novo e como o texgit trabalha que tive que mudar algumas coisas pro sispag do itaú, vc pode substituiu no .jar no texgit(exemplo).
Lembrando para gerar o .class sem erro do texgit vc vai precisar decompilar o jar e importar as dependências dos outros projeto do JRIMUM como jrimum-utilix-0.2.3-SNAPSHOT.jar e commons-lang-2.4.jar alterar a classe .java que quer acredito que seja e buildar para gerar o .class e substituir o .jar original. 

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "JRimum
Community" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
jrimum-c...@googlegroups.com
ANTES DE POSTAR... leia:
https://groups.google.com/d/topic/jrimum-community/ULU8QHHgaBs/discussion
Para cancelar a sua inscrição neste grupo, envie um e-mail para
jrimum-communi...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/jrimum-community?hl=pt-BR?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo "JRimum Community" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jrimum-communi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/jrimum-community/9c2609c2-e1f3-4767-b803-9bbfc1e5b7abn%40googlegroups.com.

Robson C

unread,
Nov 23, 2020, 6:27:47 AM11/23/20
to JRimum Community
Olá bom dia

Cara Guilherme .... entendi, meu complicado isto para quem não tem tanta bagagem assim no Java, vou ter que ver ai como proceder valeu ai meu caro.

Guilherme

unread,
Nov 23, 2020, 7:55:06 AM11/23/20
to jrimum-c...@googlegroups.com
A lógica do 8° dígito deixo com vc, mas sobre usar o jar personalizado no lugar do maven eu expliquei nesse post, Link 

Robson C

unread,
Nov 23, 2020, 8:03:42 AM11/23/20
to JRimum Community
Olá blz, Guilherme meu caro, obrigado ai pela atenção que vc esta dispensando, valeu mesmo agora sobre o link, eu clico nele e esta chamando o gmail? é isto mesmo? olha sendo um post aqui no grupo coloca o titulo do post que eu acho.
Valeu

Guilherme

unread,
Nov 23, 2020, 8:26:47 AM11/23/20
to jrimum-c...@googlegroups.com

era link do grupo, o título, Bopepo: erro na geração de boleto Caixa


Robson C

unread,
Nov 23, 2020, 2:39:56 PM11/23/20
to JRimum Community
Olá Guilherme boa tarde, achei ai o seu post mais confesso que não entendi como proceder então....

Fui tentar o mais complicado para mim, ( devido a não ser um cara Top no Java )  eu baixei os fontes lá no GitHub configurei o projeto aqui no Eclipse
tudo ok baixou as dependências o projeto foi configurado, agora para alterar de forma a ficar tudo ok com o número de digitos da conta
que pelo que eu já li aqui pode ser 8 pode ser até 9!!!!

Eu fui na classe CLBancoSantander e lá alterei a linha abaixo mudando o 6 para 8 
private static final Integer FIELDS_LENGTH = 6;

eu suponho que não seja apenas isto, seria muito fácil, mais ai o próximo passo é fazer o build no maven então ... clean install , 

o processo do maven ele vai fazer os testes e justamente ai deu o erro , na verdade Tres erros conforme abaixo

Alguém sabe como proceder para resolver estes erros? eu além de alterar também alterei TestCLBancoSantander as informações de numero da conta onde eu percebi que existiam 6 digitos coloquei 8 new NumeroDaConta(00162546,"9") na verdade coloquei dois Zeros na frente.

Tests run: 6, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 0.005 sec <<< FAILURE! - in org.jrimum.bopepo.campolivre.TestCLBancoSantander

testIofSeguradora(org.jrimum.bopepo.campolivre.TestCLBancoSantander)  Time elapsed: 0.004 sec  <<< ERROR!
java.lang.IllegalStateException: O número de fields [6] é incompátivel com o definido [8]!
at org.jrimum.texgit.type.component.BlockOfFields.isSizeAsDefinaed(BlockOfFields.java:182)
at org.jrimum.texgit.type.component.BlockOfFields.write(BlockOfFields.java:143)
at org.jrimum.texgit.type.component.BlockOfFields.write(BlockOfFields.java:44)
at org.jrimum.bopepo.campolivre.AbstractCampoLivreBaseTest.seCampoLivreEscritoEstaCorreto(AbstractCampoLivreBaseTest.java:107)
at org.jrimum.bopepo.campolivre.TestCLBancoSantander.testIofSeguradora(TestCLBancoSantander.java:50)

seTamanhoDoCampoLivreEscritoIgualA25(org.jrimum.bopepo.campolivre.TestCLBancoSantander)  Time elapsed: 0 sec  <<< ERROR!
java.lang.IllegalStateException: O número de fields [6] é incompátivel com o definido [8]!
at org.jrimum.texgit.type.component.BlockOfFields.isSizeAsDefinaed(BlockOfFields.java:182)
at org.jrimum.texgit.type.component.BlockOfFields.write(BlockOfFields.java:143)
at org.jrimum.texgit.type.component.BlockOfFields.write(BlockOfFields.java:44)
at org.jrimum.bopepo.campolivre.AbstractCampoLivreBaseTest.seTamanhoDoCampoLivreEscritoIgualA25(AbstractCampoLivreBaseTest.java:92)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

seCampoLivreEscritoEstaCorreto(org.jrimum.bopepo.campolivre.TestCLBancoSantander)  Time elapsed: 0.001 sec  <<< ERROR!
java.lang.IllegalStateException: O número de fields [6] é incompátivel com o definido [8]!
at org.jrimum.texgit.type.component.BlockOfFields.isSizeAsDefinaed(BlockOfFields.java:182)
at org.jrimum.texgit.type.component.BlockOfFields.write(BlockOfFields.java:143)
at org.jrimum.texgit.type.component.BlockOfFields.write(BlockOfFields.java:44)
at org.jrimum.bopepo.campolivre.AbstractCampoLivreBaseTest.seCampoLivreEscritoEstaCorreto(AbstractCampoLivreBaseTest.java:107)




Alguém sabe como proceder para resolver estes erros?  

se é apenas no projeto Bopepo ?  

Solerman Kaplon

unread,
Nov 23, 2020, 3:43:13 PM11/23/20
to jrimum-c...@googlegroups.com
Esses erros são dos  testes unitários, tem que ajustar eles de  acordo com a nova especificação (O teste espera 6 fixo).
Vc tb pode instruir o maven a não rodar eles se quer só um build rápido: mvn -DskipTests install
Você também pode pular a verificação de pacotes do repositório passando --offline (fica mais rápido de compilar se vc já baixou tudo)

Robson C

unread,
Nov 23, 2020, 3:50:04 PM11/23/20
to JRimum Community
Olá meu caro, tudo bem, 

Vc tb pode instruir o maven a não rodar eles se quer só um build rápido: mvn -DskipTests install  
R - Então sobre pular os testes eu até sei mais e lá na frente num vai dar BO? 

Você também pode pular a verificação de pacotes do repositório passando --offline (fica mais rápido de compilar se vc já baixou tudo)
R - Eu baixei apenas o bopepo e fiz a alteração nele, alias nem sei se isto é considerado alteração porque apenas chegar em uma classe tirar o 6 e colocar 8 penso até que se fosse apenas isto já teriam feito e não vi ninguém comentar sobre mais como disse só baixei o projeto bopepo não os outros 

Braully Silva

unread,
Nov 24, 2020, 2:06:40 PM11/24/20
to jrimum-c...@googlegroups.com
Fiz uma alteração aqui rapida, só para testar o suporte a esse tamanho de conta aqui,
passou e gerou o boleto de exemplo, porém creio que não está correto a abordagem
e não irei subir para o meu repositório. Consiga os manuais de boleto do Santander,
verifique se existem diferenças no layout ou no campo livre de acordo com o tamanho do convênio,
como ocorre em outros bancos. Se sim implemente uma nova classe CLBancoSantander,
faça os testes, commit-push e faça um pull request para nós, a comunidade agradece ;)
No mais, até breve

teste-santander.pdf
Captura de tela_2020-11-24_15-58-56.png
Captura de tela_2020-11-24_15-06-59.png

Robson C

unread,
Nov 24, 2020, 4:55:47 PM11/24/20
to JRimum Community
Olá  Braully  blz, cara eu teria a maior satisfação em fazer algo para o grupo, na verdade o que há comigo é desenvoltura na linguagem, no maven, no uso do git e mais ainda entender a programação da bopepo porque usar é uma coisa e entender é outra.

Eu tenho a documentação que me foi enviada, esta comigo  

Robson C

unread,
Nov 24, 2020, 5:11:32 PM11/24/20
to JRimum Community
Mais eu consegui passar nos testes do maven, e não eu não fiz nd, apenas observei alguns comentários, classes que foram alteradas e postadas aqui no grupo, deixa e reunir tudo e farei uns comentarios aqui, mais antes vou ver o que postastes e de repente pode ser o que eu fiz ou parecido.


Em terça-feira, 24 de novembro de 2020 às 16:06:40 UTC-3, Braully Silva escreveu:

Robson C

unread,
Nov 24, 2020, 8:13:46 PM11/24/20
to JRimum Community
Braully Silva meu caro, acompanhando ai seu comentário segue uns anexos, meu boleto de testes 

e o que eu utilizei de dados, bem primeiro olhando a documentação "Código de Barras Cobrança" do Santander que descreve o layout lá eu obtive a seguinte informação:

   código do beneficiário padrão Santander 
       tem o tamanho de 7 digitos então embora a conta corrente tenha 8, 9 o lance é utilizar o código do beneficiário
       e ai eu mandei um 2820333 
  carteira pode ser a 101 e 104 utilizei esta ultima 
  agencia e digito 2050-7
  nosso numero ele tem  o tamanho de 12   então utilizei 566612457800 e o digito 2

  Uma informação me chamou atenção e ela tem a ver com o terceiro campo do código de barras, na documentação diz:
   composto pelas 6 primeiras posições restante do N/N, 01 posição referente ao IOF, 03 Posições referente ao Tipo de Modalidade da Carteira mais o dígito verificador deste campo
o que me chamou atenção foi "posição referente ao IOF "   eu ainda não sei o que é isto vou avançar na documentação porém no projeto bopepo se observarmos a classe de testes TestCLBancoSantander vamos ver o método testIofSeguradora()
e na classe CLBancoSantander  lá informa que IOF – Seguradoras (Se 7% informar 7. Limitado a 9%) demais clientes utilizar Zero 

e minha alteração para o Santander foi justamente nesta classe a CLBancoSantander eu alterei a linha 
this.add(new FixedField<Integer>(conta.getNumeroDaConta().getCodigoDaConta(), 6, Fillers.ZERO_LEFT));

colocando um     7       por conta de utilizar o código do Beneficiario

this.add(new FixedField<Integer>(conta.getNumeroDaConta().getCodigoDaConta(), 7, Fillers.ZERO_LEFT));


porém estou na duvida ainda se vai caber mais alguma alteração, o motivo? bem vou utilizar o código do beneficiário porém esta classe pede o digito da conta se não colocar da erro, mais que digito da conta se estou utilizando código do beneficiário? vou esperar o solicitante desta implementação que estou fazendo me informar o código que o banco deve dar a ele para dai saber o que vou fazer


Em terça-feira, 24 de novembro de 2020 às 16:06:40 UTC-3, Braully Silva escreveu:
MeuBoleto31.pdf

Braully Silva

unread,
Nov 25, 2020, 6:27:08 AM11/25/20
to jrimum-c...@googlegroups.com
tenho a impressão que mesmo esse de 7 digitos, na verdade são 6 mais o dígito verificador, o que leva a crer que a implementação original atendia os seus requisitos, favor confirmar isso junto a seu gerente de relacionamento do santander.

Robson C

unread,
Nov 25, 2020, 6:32:51 AM11/25/20
to JRimum Community
Olá Braully blz meu caro,

Então o cara lá do setor ele passou para mim a conta e agência e olha infelizmente não o que ele me passou é algo mais ou menos assim

agencia: 3295
conta corrente: 129.93.000-8  

ai infelizmente não dá para não fazer alteração porque a conta realmente tem 8 digitos fora o dv,   mais , mais pela documentação entendo que vou fazer uso dó código do beneficiario (que tem 7 digitos e não sei se existe o dv estou aguardando para ver ) e não da conta.

Solerman Kaplon

unread,
Nov 26, 2020, 3:54:23 PM11/26/20
to jrimum-c...@googlegroups.com
Não tenho a informação de se tem alguém usando boletos com esse banco, mas aqui usamos um tal de número de convênio onde é pego os últimos 7 dígitos dele, desses os 6 primeiros vão como conta e o último como dígito.

Robson C

unread,
Nov 27, 2020, 10:09:04 AM11/27/20
to JRimum Community
Olá meu caro blz 

então aqui estou aguardando esta informação que pedi ao contratante a fim de ver o que o banco irá enviar, ele já me enviou a conta que realmente tem 8 digitos mais no manual não é utilizado a mesma ao invés disto lá consta 

Código do beneficiário padrão Santander: código fornecido pelo Banco  

1o. campo: composto pelo código do banco, código da moeda, campo fixo "9", quatro primeiras posições do código do beneficiário padrão Santander e dígito verificador deste campo. 
2o. campo: composto pelas 3 primeiras posições restante do código do beneficiário Santander, nosso número (N/N) com as 07 primeiras posições e dígito verificador deste campo.   

* Fator vencimento: Quantidade de dias entre 07/10/1997 até a data de vencimento: 
      Ex: 1º 06/12/2000 = 1156 2º 15/12/2000 = 1165 3º 30/12/2000 = 1180 


Bom eu já estou agora trabalhando no arquivo de remessa, se tudo der certo quero implantar para testes na segunda e dai posto o resultado, mais seria bom esta lib ( que todos sabem é muito boa )  ter uma atualização, lendo aqui falava-se até em implementar ela em Rest mais tá ai parada, um faz uma coisa, outro faz outra... e eu sem noção ( bagagem )  mais gostaria de poder contribuir

Reply all
Reply to author
Forward
0 new messages