Ir para conteúdo
  • Cadastre-se

Tamanho Nosso Número do BB


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

Recommended Posts

  • Membros Pro
Postado

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 ;
 

 

 

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

  • Consultores
Postado

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 ACBr Pro

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 !!

  • Membros Pro
Postado

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.

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

  • Consultores
Postado

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 ACBr Pro

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 !!

  • Consultores
Postado

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 ACBr Pro

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 !!

  • Membros Pro
Postado

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

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

  • Consultores
Postado

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 ACBr Pro

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 !!

  • Membros Pro
Postado

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..

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

  • Membros Pro
Postado

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,

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

  • Consultores
Postado

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

Att.

  • Curtir 1
Consultora ACBr Pro

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 !!

  • Consultores
Postado

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 ACBr Pro

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 !!

  • Membros Pro
Postado
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'

 

 

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

  • Consultores
  • Solution
Postado

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 ACBr Pro

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 !!

  • Membros Pro
Postado
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

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

  • Este tópico foi criado há 2635 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...
The popup will be closed in 10 segundos...