Ir para conteúdo
  • Cadastre-se

dev botao

CTE - Erro de validação do XML ao enviar evento de desacordo


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

Recommended Posts

Bom dia,

 

Estou tendo erro de validação do XML ao enviar o evento de Desacordo conforrme a tela abaixo. Ao debugar o PcteEnvEventoCte.pas na linha 177 está montando o ID de forma errada  visto que o campo Evento.Items[0].InfEvento.TipoEvento está retornando "-99999" ao invés de possuir o código "160110" conforme o manual. Poderiam auxiliar na identificação da causa raiz desse problema? E qual a solução nativa do ACBR?  Além disso no mesmo trecho de código ao validar o valor dos campos identifiquei que o Evento.Items[0].InfEvento.dhEvento está com a data errada também 30.12.1890 e o campo Evento.Items[0].infEvento.CNPJ está vindo com o número da matriz e não da filial que foi contra quem foi emitida a CTE.

 

Código dessa Unit:

Evento.Items[0].InfEvento.Id := 'ID'+ Evento.Items[0].InfEvento.TipoEvento +
                                        OnlyNumber(Evento.Items[0].InfEvento.chCTe) +
                                        Format('%.2d', [Evento.Items[0].InfEvento.nSeqEvento]);

 

Mensagem de erro:

image.png.30139b56eb7d19cca008d463dae22dfa.png

 

Desde já gradeço o apoio de vocês.

 

Atenciosamente,

 

Charles Silveira

 

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Seu tópico me parece um tanto confuso, talvez seja o caso de separar em mais de um...

De qualquer forma, você chegou a testar no demo? 

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

  • Consultores

Boa tarde Charles,

Você esta com todos os fontes de todas as pastas atualizados?

Se sim, reinstalou a suíte ACBr?

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa tarde Italo,

 

Baixei o projeto do svn em 23.09 mas em nenhum momento realizei a instalação do ACBR. Tem alguma documentação com o passo a passo para poder executar o procedimento? O meu projeto já está buscando os fontes dentro da pasta C:\ComponentesSeattle\ACBR\Fontes\ACBrDFe\ACBrCTe.  Seria possível fazer uma checagem para saber se estou dentro do padrão ou se está faltando alguma configuração?

 

image.thumb.png.838c28f70f23149686ee3b1b1265dae8.png

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Charles,

Não entendi, você baixou os fontes e não instalou os componentes para serem usados na sua aplicação?

Primeiro atualize todos os fontes de todas as pastas.

Segundo utilize o ACBrInstall_Trunk2 para instalar/reinstalar os componente, não esqueça de marcar a opção: Apagar arquivos antigos.

Terceiro, inclua o componente desejado em um DataModule de preferencia.

Em situações raríssimas devemos informar uma ou outra unit do componente em uses de algum form da sua aplicação.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo,

Desculpa a confusão, deixa explicar melhor para evitar ruido na comunicação: O componente foi instalado corretamente na primeira vez através desse instalador para implementar a solução de NF-e hoje está funcionando corretamente em nosso ambiente de produção, ou seja, a NF eletrônica está tudo 100% com o componente ACBr. No entanto, esse ano começamos a utilizar a manifestação de CT-e para informar o desacordo no recebimento do serviço e foi nessa integração com o Sefaz que reportei o erro no chamado. Entendeu o contexto? Nosso problema é apenas no componente ACBrCTe.

Mesmo com a NF-e funcionando corretamente, você recomenda essa reinstalação?

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Charles,

A minha recomendação é que você procure sempre estar com os fontes atualizados, independente se esta funcionando 100% ou não.

Pois pode esta funcionando 100% o envio da nota no modo normal, mas pode não esta em caso de envio para a SVC - SEFAZ-Virtual de Contingência.

Foi o que ocorreu com o CT-e no inicio desse mês.

Sei que com relação ao CT-e você vai usar apenas o evento de Prestação de Serviço em Desacordo, mas manter os fontes sempre atualizados é uma boa pratica.

Me diz uma coisa, você esta atribuindo o valor tePrestDesacordo a propriedade tpEvento ao alimentar o componente com os dados referente ao evento?

exemplo:

      infEvento.tpEvento  := tePrestDesacordo;
 

 

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Bom dia Italo,

 

Fizemos a atualização do CSV e instalamos com essa opção para remover os arquivos antigos e o erro continua.  Quanto  ao atributo tePrestDesacordo estamos passando esse valor código abaixo da nossa aplicação. Alguma outra sugestão?

 

with ACBrCTe.EventoCTe.Evento.Add do
    begin
      infEvento.nSeqEvento      := 1; // Para o Evento de Prestação do Serviço em Desacordo nSeqEvento sempre = 1
      infEvento.chCTe           := Copy(ACBrCTe.Conhecimentos.Items[0].CTe.infCTe.Id, 4, 44); //dtmNFEntradas.cdsManifestacao.FieldByName('NFE_CHAVE').AsString; //
      infEvento.CNPJ            := dtmMail.cdsFilial.FieldByName('CNPJ').AsString;  // CNPJ do Tomador
      infEvento.dhEvento        := now;
      infEvento.tpEvento        := tePrestDesacordo;
      infEvento.detEvento.xObs  := trim(edtJustificativa.Text); // minimo 15, máximo 255 caracteres
      infEvento.versaoEvento    := '3.00';
    end;
    //iLote := 1; // Numero do Lote do Evento

    ACBrCTe.EnviarEvento(1);

Link para o comentário
Compartilhar em outros sites

Boa tarde Italo,

 

O problema estava exatamente nesse trecho do código acima e o método Add não estava atribuindo os valores das propriedades e tivemos que usar a propriedade Items[0] para atribuir os respectivos valores e a integração do CT-e com Sefaz funcionou corrretamente.

 

Veja como ficou o código:

 

{with ACBrCTe.EventoCTe.Evento.New do
    begin
      infEvento.nSeqEvento      := 1; // Para o Evento de Prestação do Serviço em Desacordo nSeqEvento sempre = 1
      infEvento.chCTe           := Copy(ACBrCTe.Conhecimentos.Items[0].CTe.infCTe.Id, 4, 44); //dtmNFEntradas.cdsManifestacao.FieldByName('NFE_CHAVE').AsString; //
      infEvento.CNPJ            := dtmMail.cdsFilial.FieldByName('CNPJ').AsString;  // CNPJ do Tomador
      infEvento.dhEvento        := now;
      infEvento.tpEvento        := tePrestDesacordo;
      infEvento.detEvento.xObs  := trim(edtJustificativa.Text); // minimo 15, máximo 255 caracteres
      infEvento.versaoEvento    := '3.00';
    end;  }


    //iLote := 1; // Numero do Lote do Evento

    ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.nSeqEvento := 1;
    ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.chCTe := Copy(ACBrCTe.Conhecimentos.Items[0].CTe.infCTe.Id, 4, 44);
    ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.CNPJ := dtmMail.cdsFilial.FieldByName('CNPJ').AsString;
    ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.dhEvento := now;
    ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.tpEvento := tePrestDesacordo;
    ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.detEvento.xObs := trim(edtJustificativa.Text);
    ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.versaoEvento    := '3.00';

    ACBrCTe.EnviarEvento(1);

 

Muito obrigado pela ajuda.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
8 minutos atrás, Charles Silveira disse:

    ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.nSeqEvento := 1;

Com esse código você deveria ter um erro de index out of bounds aqui, já que não chamou o método Evento.Add ou Evento.New.

A não ser que já tivesse chamado o Add ou New anteriormente, o que também explicaria o teu problema inicial.

Na dúvida coloque um "ACBrCTe.EventoCTe.Evento.Clear" antes de chamar o Add ou New.

  • Obrigado 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Boa tarde BigWings,

Realmente o objeto já havia sido criado para atribuir o ambiente e sua dica funcionou com sucesso.

Muito obrigado pelo rápido retorno e pela dica.

 

Abraço,

 

Agora o código ficou assim:

 

ACBrCTe.EventoCTe.Evento.Clear;
    with ACBrCTe.EventoCTe.Evento.Add do
    begin
      infEvento.nSeqEvento      := 1; // Para o Evento de Prestação do Serviço em Desacordo nSeqEvento sempre = 1
      infEvento.chCTe           := Copy(ACBrCTe.Conhecimentos.Items[0].CTe.infCTe.Id, 4, 44); //dtmNFEntradas.cdsManifestacao.FieldByName('NFE_CHAVE').AsString; //
      infEvento.CNPJ            := dtmMail.cdsFilial.FieldByName('CNPJ').AsString;  // CNPJ do Tomador
      infEvento.dhEvento        := now;
      infEvento.tpEvento        := tePrestDesacordo;
      infEvento.detEvento.xObs  := trim(edtJustificativa.Text); // minimo 15, máximo 255 caracteres
      infEvento.versaoEvento    := '3.00';
    end;
    //iLote := 1; // Numero do Lote do Evento
}
    ACBrCTe.EnviarEvento(1);

 

Editado por Charles Silveira
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

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