Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 240 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Bom dia

Me considero ainda um principiante em Delphi e a sua interação com o ACBr, mas vamos lá.

Estou usando um fonte que adquiri tempos atrás para operações que envolvam NFCe. Quando tentei cancelar uma nota deu essa mensagem e, tenho quase que certeza, que o problema está nos parâmetros que estou enviando para o evento. Abaixo parte do fonte onde trata isso:

    with dtmNotaEletronica.ACBrNFe1.EventoNFe.Evento.Add do
    begin
      infEvento.CNPJ            := cdsEmpresa['CNPJ'];
      infEvento.dhEvento        := DataHoraEvento;
      infEvento.tpEvento        := teCancelamento;
      infEvento.chNFe           := dtmNotaEletronica.ACBrNFe1.NotasFiscais[0].NFe.procNFe.chNFe;
      infEvento.detEvento.nProt := dtmNotaEletronica.ACBrNFe1.NotasFiscais[0].NFe.procNFe.nProt;
      infEvento.detEvento.xJust := memJustificativa.Text;
    end;

Alguém pode me ajudar.

Saudações e aguardo.

Ricardo Timm Bonsembiante
Infopasso Ltda.
Cobol NetExpress 3.1
Dialog System
ACBrMonitorPLUS 1.4.0.256 - x86

  • Consultores
Postado

Esta informação "2403261717" coincide com alguma das que você está passando para os parâmetros?

Em um palpite inicial seria verificar qual é a informação que é atribuída para o nProt.

Também vale fazer um teste com o programa exemplo e verificar se também ocorre o problema.

Se você colocar um break-point, o erro acontece em alguma das linhas que destacou?

4 minutos atrás, Ricardo Timm Bonsembiante disse:

Acredito que sim, pois faço as atualizações constantemente. Como posso verificar isso?

Se você atualiza e reinstala constantemente, acredito que pode considerar como atualizado, mas em caso de dúvida, vale fazer um update na pasta base dos fontes e reinstalar o ACBr.

  • Curtir 1
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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

Pela mensagem "'2403261717' is not a valid integer value" 

Meu palpite é que estava passando a Data e Hora para transmissão e está ficando um valor inteiro inválido

2403261717 seria 26/03/2024 as 17:17 formatado.

Att.

  • Curtir 1
  • Membros Pro
Postado

Diego

Como disse anteriormente estou engatinhando em Delphi + ACBr (rsrsrs), mas notei algo no código fonte que repasso abaixo:

    // numero do lote de envio
    DataHoraEvento := NOW;
    NumeroLote     := StrToInt(FormatDateTime('yymmddhhmm', NOW));

    // xml da nota fiscal eletronica para ser atualizado
    dtmNotaEletronica.CarregarXMLNFeFromDB(FSerie, FNumero);

    // envio do cancelamento
    dtmNotaEletronica.ACBrNFe1.EventoNFe.Evento.Clear;
    dtmNotaEletronica.ACBrNFe1.EventoNFe.idLote := NumeroLote;

    with dtmNotaEletronica.ACBrNFe1.EventoNFe.Evento.Add do
    begin
      infEvento.CNPJ            := cdsEmpresa['CNPJ'];
      infEvento.dhEvento        := DataHoraEvento; // o erro não está aqui? não deveria ser infEvento.dhEvento := NumeroLote;
      infEvento.tpEvento        := teCancelamento;
      infEvento.chNFe           := dtmNotaEletronica.ACBrNFe1.NotasFiscais[0].NFe.procNFe.chNFe;
      infEvento.detEvento.nProt := dtmNotaEletronica.ACBrNFe1.NotasFiscais[0].NFe.procNFe.nProt;
      infEvento.detEvento.xJust := memJustificativa.Text;
    end;

Não poderia ser esse o problema? DataHoraEvento é um string e NumeroLote é um inteiro.

Ricardo Timm Bonsembiante
Infopasso Ltda.
Cobol NetExpress 3.1
Dialog System
ACBrMonitorPLUS 1.4.0.256 - x86

  • Consultores
Postado
7 minutos atrás, Ricardo Timm Bonsembiante disse:
NumeroLote     := StrToInt(FormatDateTime('yymmddhhmm', NOW));

Boa tarde,

O erro está no StrToInt, pois o range do tipo inteiro, que essa função converte, vai somente até 2147483647 e a data convertida está estourando este valor.

Troque para StrToInt64 e veja se funciona.

  • Curtir 2
  • Consultores
Postado
1 hora atrás, Ricardo Timm Bonsembiante disse:

Rubinho

Mas passo DataHoraEvento ou NumeroLote?

Veja como é feito no programa exemplo:

  ACBrNFe1.EventoNFe.Evento.Clear;  
  with ACBrNFe1.EventoNFe.Evento.New do
  begin
    infEvento.chNFe := Chave;
    infEvento.CNPJ   := CNPJ;
    infEvento.dhEvento := now;
    infEvento.tpEvento := teCancelamento;
    infEvento.detEvento.xJust := Justificativa;
    infEvento.detEvento.nProt := Protocolo;
  end;

  ACBrNFe1.EnviarEvento(StrToInt(idLote));

 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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
  • Solution
Postado

se for usar desse forma precisa usar Int64 StrToInt64

  • Obrigado 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Moderadores
Postado
4 horas atrás, Ricardo Timm Bonsembiante disse:

Diego

Como disse anteriormente estou engatinhando em Delphi + ACBr (rsrsrs), mas notei algo no código fonte que repasso abaixo:

    // numero do lote de envio
    DataHoraEvento := NOW;
    NumeroLote     := StrToInt(FormatDateTime('yymmddhhmm', NOW));

    // xml da nota fiscal eletronica para ser atualizado
    dtmNotaEletronica.CarregarXMLNFeFromDB(FSerie, FNumero);

    // envio do cancelamento
    dtmNotaEletronica.ACBrNFe1.EventoNFe.Evento.Clear;
    dtmNotaEletronica.ACBrNFe1.EventoNFe.idLote := NumeroLote;

    with dtmNotaEletronica.ACBrNFe1.EventoNFe.Evento.Add do
    begin
      infEvento.CNPJ            := cdsEmpresa['CNPJ'];
      infEvento.dhEvento        := DataHoraEvento; // o erro não está aqui? não deveria ser infEvento.dhEvento := NumeroLote;
      infEvento.tpEvento        := teCancelamento;
      infEvento.chNFe           := dtmNotaEletronica.ACBrNFe1.NotasFiscais[0].NFe.procNFe.chNFe;
      infEvento.detEvento.nProt := dtmNotaEletronica.ACBrNFe1.NotasFiscais[0].NFe.procNFe.nProt;
      infEvento.detEvento.xJust := memJustificativa.Text;
    end;

Não poderia ser esse o problema? DataHoraEvento é um string e NumeroLote é um inteiro.

é no primeiro trecho passou só um pedaço do código.

é exatamente isso conversão de data e hora para inteiro tem que ser inteiro 64

mas se tu está com o delphi ao debugar rodar com o F9 ele iria daro erro e parar ou tu poderia colocar o ponto de parada e avançar com F8 até chegar onde ira ocorrer o erro

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

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