Ir para conteúdo
  • Cadastre-se

Contribuicao: SOFISA: Tamanho de registro de mensagens


Ver Solução Respondido por Renato Rubinho,
  • Este tópico foi criado há 298 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Consultores
Postado

Boa tarde,

Criada a tarefa ACBR-7944 para validação.

Obrigado pela contribuição.

image.png

Alexandre de Paula
Gerente de Projetos
Ajude o Projeto ACBr crescer - Assine o Clube PRO                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

  • Consultores
Postado

Obrigado pela contribuição, mas no fonte atual as mensagens foram geradas corretamente e com a sua contribuição, passaram a gerar de forma errada.

1. Efetuados testes com o fonte atual do componente, gerando de 0 a 5 mensagens e a linha de mensagem foi gerada corretamente, conforme o anexo contendo a linha de mensagem de cada teste:teste_mensagens_fonte_atual.txt

image.png

2. Efetuados testes com seu fonte e somente com as 5 mensagens a linha foi gerada corretamente, se forem passadas apenas de 1 a 4 mensagens, a linha fica com o tamanho incorreto (332 posições ao invés de 400), conforme o anexo contendo a linha de mensagem de cada teste:teste_mensagens_fonte_contribuição.txt

3. Caso o problema persista no seu cenário:
* Simule com o programa de exemplo para verificar se ocorre o mesmo ou se precisa de algum ajuste no seu cenário

 

Postado
18 minutos atrás, Renato Rubinho disse:

Obrigado pela contribuição, mas no fonte atual as mensagens foram geradas corretamente e com a sua contribuição, passaram a gerar de forma errada.

1. Efetuados testes com o fonte atual do componente, gerando de 0 a 5 mensagens e a linha de mensagem foi gerada corretamente, conforme o anexo contendo a linha de mensagem de cada teste: teste_mensagens_fonte_atual.txt 2.07 kB · 1 download

image.png

2. Efetuados testes com seu fonte e somente com as 5 mensagens a linha foi gerada corretamente, se forem passadas apenas de 1 a 4 mensagens, a linha fica com o tamanho incorreto (332 posições ao invés de 400), conforme o anexo contendo a linha de mensagem de cada teste: teste_mensagens_fonte_contribuição.txt 1.8 kB · 1 download

3. Caso o problema persista no seu cenário:
* Simule com o programa de exemplo para verificar se ocorre o mesmo ou se precisa de algum ajuste no seu cenário

 

Olá,
que estranho.
Para qual das 3 classes foi feito o teste?

O que eu percebi é que a mudanca para o ACBrBancoSofisa.pas acabou indo junto com a minha outra contribuicao via ACBr-7943 e Rev-41032.
A principio teria que estar funcionando mesmo para o codigo mais recente do repositorio para a classe da revisao acima.

  • Consultores
Postado

As três tiveram o mesmo comportamento, inclusive a do leiaute próprio precisará de correção no SVN.

Removendo o "-1" que foi adicionado, funcionou corretamente também. 

Por favor, simule o erro com o programa de exemplo para termos o mesmo cenário, caso o problema também ocorra com ele.

Postado
2 horas atrás, Renato Rubinho disse:

As três tiveram o mesmo comportamento, inclusive a do leiaute próprio precisará de correção no SVN.

Removendo o "-1" que foi adicionado, funcionou corretamente também. 

Por favor, simule o erro com o programa de exemplo para termos o mesmo cenário, caso o problema também ocorra com ele.

Situacao interessante.

Segui suas instruções e gerei remessas para Sofisa leiaute próprio e leiaute Itau usando revisão 41128 do SVN.
No meu caso o comprimento está em ordem no para Sofisa leiaute próprio e errado para leiaute Itau como nos anexos.

Não sei se é relevante mas no meu caso eu compilo usando o Lazarus no linux e gerei o demo para Linux e também para Windows.

Por favor me indique qualquer outro teste que eu possa fazer do meu lado para ajudar a esclarecer o que pode estar acontecendo.

DemoACBRBoleto.png

AcbrBoletoDemo_Sofisa_Itau.ini codigo_atual_Sofisa_Proprio.rem AcbrBoletoDemo_Sofisa_Proprio.ini codigo_atual_Sofisa_Itau.rem

Postado

Olá,
encontrei o problema.


De acordo com a documentação do Lazarus (https://wiki.lazarus.freepascal.org/For#Loop_Completion), e do Delphi (https://docwiki.embarcadero.com/RADStudio/Sydney/en/Declarations_and_Statements_(Delphi)#For_Statements) a variável do FOR tem valor indefinido ao final do loop. Ela só tem valor definido caso o FOR tenha sido interrompido com um BREAK.
Neste caso, é prudente usar o WHILE para garantir o valor da variável ao final do loop.

Substituí o FOR por WHILE nos códigos em anexo que devem tornar o comportamento previsível em todos os compiladores/plataformas.

ACBrBancoSofisaSantander.pas ACBrBancoSofisaItau.pas ACBrBancoSofisa.pas

  • Curtir 2
  • Consultores
  • Solution
Postado

Obrigado pela contribuição, era isso mesmo. 👏👏👏
Foram enviadas correções ao SVN que devem resolver o problema relatado, Rev-41144
Por favor atualize os fontes, reinstale os componentes, verifique se o problema foi resolvido e, se possível, nos informe se foi o resultado esperado.

Obs: 
* Seus fontes estão desatualizados. A contribuição da leitura do NossoNumero com DV do leiaute próprio não consta no arquivo que anexou aqui neste tópico.
* Enviado ao SVN as alterações dos demais arquivos e, deste arquivo, somente as alterações referentes à correção das mensagens, as demais alterações já estavam ok.
 

  • Este tópico foi criado há 298 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...