Membros Pro Ricardo Timm Bonsembiante Postado 27 Março Membros Pro Compartilhar Postado 27 Março 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.241 - x86 Link para o comentário Compartilhar em outros sites More sharing options...
Moderadores Juliomar Marchetti Postado 27 Março Moderadores Compartilhar Postado 27 Março Tu está com o ACBr atualizado? e rodado o instalador do mesmo? 1 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro Ricardo Timm Bonsembiante Postado 27 Março Autor Membros Pro Compartilhar Postado 27 Março Juliomar Acredito que sim, pois faço as atualizações constantemente. Como posso verificar isso? Ricardo Timm Bonsembiante Infopasso Ltda. Cobol NetExpress 3.1 Dialog System ACBrMonitorPLUS 1.4.0.241 - x86 Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Diego Foliene Postado 27 Março Consultores Compartilhar Postado 27 Março 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. 1 Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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 More sharing options...
Membros Pro Leandro Vignoto Postado 27 Março Membros Pro Compartilhar Postado 27 Março 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. 1 Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro Ricardo Timm Bonsembiante Postado 27 Março Autor Membros Pro Compartilhar Postado 27 Março 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.241 - x86 Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Renato Rubinho Postado 27 Março Consultores Compartilhar Postado 27 Março 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. 2 Link para o comentário Compartilhar em outros sites More sharing options...
Membros Pro Ricardo Timm Bonsembiante Postado 27 Março Autor Membros Pro Compartilhar Postado 27 Março Rubinho Mas passo DataHoraEvento ou NumeroLote? Ricardo Timm Bonsembiante Infopasso Ltda. Cobol NetExpress 3.1 Dialog System ACBrMonitorPLUS 1.4.0.241 - x86 Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Diego Foliene Postado 27 Março Consultores Compartilhar Postado 27 Março 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)); Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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 More sharing options...
Consultores Solution Victor H. Gonzales - Panda Postado 27 Março Consultores Solution Compartilhar Postado 27 Março se for usar desse forma precisa usar Int64 StrToInt64 Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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" Link para o comentário Compartilhar em outros sites More sharing options...
Moderadores Juliomar Marchetti Postado 27 Março Moderadores Compartilhar Postado 27 Março 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 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts