Ir para conteúdo
  • Cadastre-se

dev botao

Tamanho Nosso Número do BB


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

Recommended Posts

Boa tarde.. tenho um convenio no BB que é de 6 posições e carteira 17...
No processamento do arquivo de retorno, tenho recebido erro que de o tamanho máximo no nosso número é 5.
assim está as Regra..
Meu convenio está caindo na regra em negrito.. quando deveria cair na regra subilinhada, por confirma minha conversa com
a área técnica do BB, sempre que o convênio for de 6 posições, o nosso número será de 11 posições...

** Unit AcbrBancoBrasil.PAS **


if (Length(trim(NossoNumero)) > 10) and
      (((wTamConvenio = 6) and ((wCarteira = '16') or (wCarteira = '18'))) or
      ((wTamConvenio = 7) and (wCarteira = '18'))) then
      Result:= 17
   else if (wTamConvenio <= 4) then
      Result := 7
   else if ((wTamConvenio > 4) and (wTamConvenio < 6)) or
           ((wTamConvenio = 6) and ((wCarteira = '12') or (wCarteira = '15') or
            (wCarteira = '17') or (wCarteira = '18'))) then
      Result := 5

   else if (wTamConvenio = 6) then
      Result := 11

   else if (wTamConvenio = 7) then
      Result := 10;

 

Inverti para essa forma e funcionou para todas as carteira..

   if (Length(trim(NossoNumero)) > 10) and
      (((wTamConvenio = 6) and ((wCarteira = '16') or (wCarteira = '18'))) or
      ((wTamConvenio = 7) and (wCarteira = '18'))) then
      Result:= 17
   else if (wTamConvenio <= 4) then
      Result := 7
   else if (wTamConvenio = 6) then
      Result := 11
   else if (wTamConvenio = 7) then
      Result := 10
   else if ((wTamConvenio > 4) and (wTamConvenio < 6)) or
           ((wTamConvenio = 6) and ((wCarteira = '12') or (wCarteira = '15') or
            (wCarteira = '17') or (wCarteira = '18'))) then
      Result := 5 ;
 

 

 

icone.png.a9a9834f5d376de0caa4952ae2bbf8ce.pngAggille Sistemas de Gestão

Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Essa função retorna somente as posições livres para uso, as 6 primeiras são referentes ao número do convênio.

Att.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

Boa tarde Juliana...

 

Lá no tratamento do retorno é chamada essa rotina pra pegar o tamanho do NossoNumero  ( que retorna 5 do jeito que estava ).
O Nosso Numero dessa carteira vem com 11 caracteres no arquivo de retorno, que gera um erro do acbr, dizendo que o  número máximo do nosso número é 5,
quando deveria ser 11 devido ao convênio ter 6 digitos.
Do jeito que estava não estava conseguindo processar os arquivo de retorno.

icone.png.a9a9834f5d376de0caa4952ae2bbf8ce.pngAggille Sistemas de Gestão

Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Pode anexar o arquivo ou pelo menos a linha com esse retorno? Também informe o número do convênio.

Att.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Não creio que alterar esta função seja a solução correta, uma vez que a finalidade da mesma é garantir que a aplicação saiba quantas posições pode utilizar no nosso número.

Será necessário investigar um pouco mais a melhor maneira de resolver.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

Bom dia Juliana...obrigado pelo retorno...

segue manual de especificações do Banco do Brasil de Novembro de 2018.. na página 17 ( convênio de 6 digitos ), ali fala que o nosso numero deve ter 11 posições..
Do jeito que está no ACBR está tratando como 5....
Fiz a alteração aqui do jeito que falei acima e está funcionando em todos os clientes desde a semana passada..
Mas aguardo uma análise mais profunda...

sds,

 

Doc5175Bloqueto.pdf

icone.png.a9a9834f5d376de0caa4952ae2bbf8ce.pngAggille Sistemas de Gestão

Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

48 minutos atrás, Aggille Sistemas de Gestão disse:

ali fala que o nosso numero deve ter 11 posições..

Isso está claro, mas a questão é que a função que você alterou calcula a quantidade de caracteres livres para uso, que no seu caso também são 5.

Me parece que trata-se da necessidade de ajuste na leitura do retorno considerando esta informação.

Att.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

Oi Juliana... a função se chama CalcularTamMaximoNossoNumero , imagino que ela retorne o comprimento máximo do campo nosso número.. vou analisar de que forma ela é usada dentro da leitura do arquivo de retorno então..

obrigado..

icone.png.a9a9834f5d376de0caa4952ae2bbf8ce.pngAggille Sistemas de Gestão

Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

Oi Juliana...

a Exception acontece na Unit AcbrBoleto na linha 1603:
 

 wTamNossoNumero:= CalcularTamMaximoNossoNumero(Carteira, wNossoNumero,
                                                     ACBrBoleto.Cedente.Convenio);

      if Length(trim(wNossoNumero)) > wTamNossoNumero then
         raise Exception.Create( ACBrStr('Tamanho Máximo do Nosso Número é: '+ IntToStr(wTamNossoNumero) ));

Ali ele compara o tamanho do NossoNumero que leu no arqauivo de retorno com o valor retornado prla funcao CalcularTamMaximoNossoNumero.. e como ela retorna 5 e vem 11 no arquivo, ele levanta a exceção...

sds,

icone.png.a9a9834f5d376de0caa4952ae2bbf8ce.pngAggille Sistemas de Gestão

Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Administradores

Exatamente, mas seria em relação as posições de uso livre...

Att.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

4 horas atrás, Juliana Tamizou disse:

Exatamente, mas seria em relação as posições de uso livre...

Att.

oi.. não é dessa forma que entendi.. mas tudo bem.. de qualquer forma o arquivo de retorno está correto...

 

icone.png.a9a9834f5d376de0caa4952ae2bbf8ce.pngAggille Sistemas de Gestão

Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Vendo um tópico relativo a outro assunto, notei que ja unit do BB já existe a função para separar o convenio do nosso número,  seria a NossoNumeroSemFormatacaoLerRetorno().

Faça um teste utilizando a mesma.

Att.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

16 horas atrás, Juliana Tamizou disse:

Boa tarde.

Vendo um tópico relativo a outro assunto, notei que ja unit do BB já existe a função para separar o convenio do nosso número,  seria a NossoNumeroSemFormatacaoLerRetorno().

Faça um teste utilizando a mesma.

Att.

meu sistema chama a rotina AcbrBoleto.LeRetorno()...
o próprio ACBR chama essa função na linha 1157 (   NossoNumero := NossoNumeroSemFormatacaoLerRetorno(ACBrBoleto.Cedente.Convenio, Carteira, Linha); ) da unit AcbrBancoBrasil.. porém é na rotina de leitura do regidtro 240, e no caso meu arquivo é cbr643 que é de 400 posições...

Então, fui na linha 1837 ()método LerRetorno400Pos6 ) e substitui NossoNumero := Copy(Linha,63,11); ( ele esta lendo 11 caracteres e é aqui que ocorre o erro porque diz que o máximo é 5..) 
e substitui por NossoNumero := NossoNumeroSemFormatacaoLerRetorno(ACBrBoleto.Cedente.Convenio, Carteira, Linha); e o retorno é sempre '00000'

 

 

icone.png.a9a9834f5d376de0caa4952ae2bbf8ce.pngAggille Sistemas de Gestão

Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Administradores
  • Solution

Bom dia.

Após mais algum tempo de análise, cheguei a conclusão que como é sabdio que as 6 primeiras posições sempre se referem ao convênio, basta iniciar a leitura do nosso número a partir da 7ª posição.

Alterações no svn.

Att.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

19 minutos atrás, Juliana Tamizou disse:

Bom dia.

Após mais algum tempo de análise, cheguei a conclusão que como é sabdio que as 6 primeiras posições sempre se referem ao convênio, basta iniciar a leitura do nosso número a partir da 7ª posição.

Alterações no svn.

Att.

ótima solução.. funcionou perfeitamente.. obrigado..

 

  • Curtir 2

icone.png.a9a9834f5d376de0caa4952ae2bbf8ce.pngAggille Sistemas de Gestão

Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1819 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.