Diego Martins de Siqueira Postado 25 Agosto, 2014 Postado 25 Agosto, 2014 Estou com problema para gerar o evento de cancelamento de um CTe em especial. O programa é bem simples, o usuario seleciona qual o XML ele deseja cancelar e digita uma justificativa. O XML foi gerado pelo componente e isso já funciona a algum tempo, não consigo entender porque nesse CTe em especial ele não está funcionando. Desde já agradeço a quem puder me dar uma luz; Estou anexando o XML; O erro que foi apresentado: Segue trecho do código que foi citado: if OpenDialog1.Execute then begin ACBrCTe1.Conhecimentos.Clear; ACBrCTe1.Conhecimentos.LoadFromFile(OpenDialog1.FileName); if not(InputQuery('Cancelamento do CTe:', 'Justificativa', vAux))then begin - exit; end; ACBrCTe1.EventoCTe.Evento.Clear; qryEmpresa.Close; qryEmpresa.Open; with ACBrCTe1.EventoCTe.Evento.Add do begin infEvento.nSeqEvento := 1; // Para o Evento de Cancelamento: nSeqEvento sempre = 1 infEvento.chCTe := Copy(ACBrCTe1.Conhecimentos.Items[0].CTe.infCTe.Id, 4, 44); infEvento.CNPJ := qryEmpresacnpj.AsString; infEvento.dhEvento := now; infEvento.tpEvento := teCancelamento; infEvento.detEvento.xJust := trim(vAux); infEvento.detEvento.nProt := ACBrCTe1.Conhecimentos.Items[0].CTe.procCTe.nProt; end; iLote := 1; // Numero do Lote do Evento ACBrCTe1.EnviarEventoCTe(iLote); Memo1.Lines.Text := UTF8Encode(ACBrCTe1.WebServices.EnvEvento.RetWS); memo1.Lines.Text := UTF8Encode(ACBrCTe1.WebServices.EnvEvento.RetWS); LoadXML(Memo1, WBResposta); ShowMessage(IntToStr(ACBrCTe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat)); ShowMessage(ACBrCTe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt); end; 35140809602853000178570000000039661220776052-cte.xml
Consultores Italo Giurizzato Junior Postado 25 Agosto, 2014 Consultores Postado 25 Agosto, 2014 Boa noite Diego, Primeiro a mensagem de erro de validação diz que a TAG nProt esta com valor vazio e isso não é permitido. Segundo se você abrir com um navegador o XML que você postou, vai notar que o mesmo não possui o protocolo de autorização. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Diego Martins de Siqueira Postado 28 Agosto, 2014 Autor Postado 28 Agosto, 2014 Boa tarde Italo, Obrigado pela resposta, alguma configuração pode gerar um XML sem o numero do protocolo? Preciso cancelar esse CTe, como faze-lo sem o numero do protocolo? Agradeço novamente
Consultores Italo Giurizzato Junior Postado 28 Agosto, 2014 Consultores Postado 28 Agosto, 2014 Boa tarde Diego, Ou você esta pegando o XML errado ou por algum motivo, normalmente erro no retorno da SEFAZ o XML não foi atualizado com o protocolo. Neste caso é simples, basta carregar o XML com o LoadFromFile e depois executar o Consultar. Verifique também se a propriedade AtualizarXMLCancelado esta com o valor True. Após realizar a consulta o XML vai ser atualizado fincando assinado e protocolado. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Diego Martins de Siqueira Postado 29 Agosto, 2014 Autor Postado 29 Agosto, 2014 Bom dia Italo, Muito obrigado pelo retorno, fiz as alterações indicadas, vou fazer os testes agora.
Diego Martins de Siqueira Postado 29 Agosto, 2014 Autor Postado 29 Agosto, 2014 Bom dia Italo, Passei só para avisar que os cancelamentos foram feitos com sucesso. Muito obrigado pelo apoio.
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora