Ir para conteúdo
  • Cadastre-se

dev botao

não grava o protocolo no cte


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

Recommended Posts

Postado

Boa tarde senhores e senhoras.

De um tempo para ca, em alguns caso não é registrado os dados no final do XML e antes ao consultar o protocolo o XML era completado com estes dados, agora não mais. Tenho que fazer algum outro procedimento para que eu consiga fazer este registro?

Desde já agradeço a colaboração.

Abs

Postado
15 horas atrás, Italo Jurisato Junior disse:

Boa tarde Jose,

O componente não acrescenta o protocolo no final do XML caso o CT-e seja rejeitado.

Verifique se esses cujo XML não foi atualizado com o protocolo se eles se encontram na SEFAZ.

Bom dia Italo, 

Sim o CTe esta presente no portal da Receita, ele até me mostra o número do protocolo em um showmessage que coloquei, porém não atualiza o XML.

Grato pelo retorno.

  • Consultores
Postado

Bom dia Jose,

Quando isso ocorre, ou seja, o XML é enviado e é autorizado mas fica sem o protocolo de autorização, a solução é simples:

1. Carregar o XML assinado através do método LoadFromFile;

2. Executar o método Consultar.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom dia a todos eu estou com o mesmo problema...

E alguns minutos atrás recebi mais um e-mail de cliente falando que o contador reclamou de xml sem o número de protocolo...

Eu segui a dica do Italo para fazer manualmente, funcionou perfeitamente aqui

 AbrirCte.Title      := 'Selecione o CTe';
 AbrirCte.DefaultExt := '*-cte.xml';
 AbrirCte.Filter     := 'Arquivos CTe (*-cte.xml)|*-cte.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
 AbrirCte.InitialDir := PathMensal;

 if AbrirCte.Execute then begin
   ACBrCTe1.Conhecimentos.Clear;
   ACBrCTe1.Conhecimentos.LoadFromFile(AbrirCte.FileName);
   ACBrCTe1.Consultar;
 end;
 

Só que se eu quiser que o meu sistema detecta que está com o status 204 duplicidade e peço para o sistema arrumar sozinho ele dá um erro DigestValue do documento número do cte não confere.

Alguém pode me dar uma dica como eu arrumo isso?

Grato,

Wagner

Postado
10 minutos atrás, wagner_fix disse:

Bom dia a todos eu estou com o mesmo problema...

E alguns minutos atrás recebi mais um e-mail de cliente falando que o contador reclamou de xml sem o número de protocolo...

Eu segui a dica do Italo para fazer manualmente, funcionou perfeitamente aqui

 AbrirCte.Title      := 'Selecione o CTe';
 AbrirCte.DefaultExt := '*-cte.xml';
 AbrirCte.Filter     := 'Arquivos CTe (*-cte.xml)|*-cte.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
 AbrirCte.InitialDir := PathMensal;

 if AbrirCte.Execute then begin
   ACBrCTe1.Conhecimentos.Clear;
   ACBrCTe1.Conhecimentos.LoadFromFile(AbrirCte.FileName);
   ACBrCTe1.Consultar;
 end;
 

Só que se eu quiser que o meu sistema detecta que está com o status 204 duplicidade e peço para o sistema arrumar sozinho ele dá um erro DigestValue do documento número do cte não confere.

Alguém pode me dar uma dica como eu arrumo isso?

Grato,

Wagner

Obrigado a todos pelo retorno, estava utilizando o comando

//  ACBrCTe1.WebServices.Consulta.CTeChave := copy(dmlote.cdsconhece.fieldbyname('CHAVE').AsString,21,44);
//  ACBrCTe1.WebServices.Consulta.Executar;

ao invés do loadfromfile.

Forte abraço a todos, não não sei como finalizar o tópico.

  • Consultores
  • Solution
Postado

Bom dia Wagner,

Se esta ocorrendo o erro de DigestValue não confere isso significa que você o XML foi gerado novamente e provavelmente com data/hora de emissão diferente do primeiro que foi enviado ou outra informação.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Italo realmente foi isso que aconteceu... 

Então no caso se o sistema fizer uma nova tentativa de envio para ele checar o status (ele vai gerar um novo XML).

O LoadFromFile e Consultar não vai funcionar né?

Grato,

Wagner

  • Curtir 1
  • Consultores
Postado

Boa tarde Wagner,

Se o XML foi gerado, assinado, validado e enviado, me responda qual é a necessidade de gerar novamente o XML caso ocorre algum erro de conexão?

Só devemos gerar novamente caso o conhecimento seja rejeitado pela SEFAZ, ai sim, você gera o XML novamente com as devidas correções, caso contrario não.

O conhecimento foi enviado, ocorreu erro de timeout por exemplo, qual é o procedimento?

1. Carregar o XML através do LoadFromFile;

2. Executar o método Consultar;

Se o conhecimento realmente foi enviado para a SEFAZ e esta processou com sucesso, ao consultar será retornado o protocolo de autorização e o mesmo será incluído no XML, deixando-o completo, ou seja, assinado e protocolado.

Agora se ocorreu algum problema, será retornado a rejeição, neste caso conforme já descrito acima, devemos corrigir a informação errada, gerar novamente o XML e enviar.

E temos o caso de ao consultar retornar que o conhecimento não existe na base de dados, neste caso, devemos simplesmente enviar novamente.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Italo bom dia...

Explico: As vezes (não é todos meus clientes), ele vai enviar o CT-e para o sefaz ele envia, mas não retorna o XML com o protocolo e da Timeout.

O que acontece no meu sistema? Quando ele envia e me da o retorno de sucesso... Eu atualizo o meu banco de dados falando que foi enviado com protocolo, chave e etc...

Mas quando da timeout (sem me retornar o xml atualizado do sefaz), o meu banco de dados não atualiza e ele fica pronto para enviar novamente, ai quando o usuário vai tentar enviar novamente (nesse momento ele gera um novo XML) e quando retorna o status de cte duplicado e eu tento corrigir pelo o consultar ele fala que o DigestValue está diferente.

Consegui explicar?

Grato,

Wagner

  • Consultores
Postado

Bom dia Wagner,

Da forma que você implementou esta errada.

Se após o envio ocorre o erro de timeout, você não pode deixar o usuário enviar novamente e sim consultar.

Porque tem que ser dessa forma, pelo simples fato de você não saber que o erro ocorreu no envio ou no retorno.

Ao consultar se retornar o protocolo, fica claro que o erro ocorreu no retorno.

Se retornar que o CT-e não consta na base de dados, fica claro que o erro ocorreu no envio, ai sim, você libera para que o usuário possa enviar novamente.

Se retornar rejeições, fica claro que o erro ocorreu no retorno, mas o CT-e não foi autorizado, ai sim, você libera para que o usuário possa fazer as devidas correções e enviar novamente.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

@Italo Jurisato Junior gostaria de agradecer pela paciência e as explicações...

Conseguiu mais uma vez me ajudar com um problema que carrego a anos, já tentei a solução em outros tópicos e nunca tinha uma resposta clara...

E com a dúvida do José conseguiu resolver o meu problema.

Abraço,

Wagner

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